mirror of
https://bitbucket.org/Dennis07/lina-components.git
synced 2025-02-12 10:25:59 +02:00
Version 1.0 DEV 1.16c
Signed-off-by: Dennis07 <den.goehlert@t-online.de>
This commit is contained in:
parent
f0d57e3927
commit
c5268b9088
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -13,7 +13,7 @@ interface
|
|||||||
uses
|
uses
|
||||||
{ Standard-Units }
|
{ Standard-Units }
|
||||||
SysUtils, Classes, Controls, Windows, Forms, StdCtrls, ComCtrls, ExtCtrls,
|
SysUtils, Classes, Controls, Windows, Forms, StdCtrls, ComCtrls, ExtCtrls,
|
||||||
Graphics, Dialogs,
|
Graphics, Dialogs, Messages,
|
||||||
{ Andere Package-Units }
|
{ Andere Package-Units }
|
||||||
uBase, uSysTools, uSysCtrls, uWebCtrls;
|
uBase, uSysTools, uSysCtrls, uWebCtrls;
|
||||||
|
|
||||||
@ -486,7 +486,6 @@ type
|
|||||||
FColor: TColor;
|
FColor: TColor;
|
||||||
FValue: Integer;
|
FValue: Integer;
|
||||||
FVIsible: Boolean;
|
FVIsible: Boolean;
|
||||||
FArtLine: Boolean;
|
|
||||||
FBorderStyle: TBorderStyle;
|
FBorderStyle: TBorderStyle;
|
||||||
FBorderWidth: Integer;
|
FBorderWidth: Integer;
|
||||||
FBorderColor: TColor;
|
FBorderColor: TColor;
|
||||||
@ -495,7 +494,6 @@ type
|
|||||||
procedure SetColor(Value: TColor);
|
procedure SetColor(Value: TColor);
|
||||||
procedure SetValue(Value: Integer);
|
procedure SetValue(Value: Integer);
|
||||||
procedure SetVisible(Value: Boolean);
|
procedure SetVisible(Value: Boolean);
|
||||||
procedure SetArtLine(Value: Boolean);
|
|
||||||
procedure SetBorderStyle(Value: TBorderStyle);
|
procedure SetBorderStyle(Value: TBorderStyle);
|
||||||
procedure SetBorderWidth(Value: Integer);
|
procedure SetBorderWidth(Value: Integer);
|
||||||
procedure SetBorderColor(Value: TColor);
|
procedure SetBorderColor(Value: TColor);
|
||||||
@ -510,7 +508,6 @@ type
|
|||||||
property Color: TColor read FColor write SetColor default clNone;
|
property Color: TColor read FColor write SetColor default clNone;
|
||||||
property Value: Integer read FValue write SetValue default 0;
|
property Value: Integer read FValue write SetValue default 0;
|
||||||
property Visible: Boolean read FVIsible write SetVisible default True;
|
property Visible: Boolean read FVIsible write SetVisible default True;
|
||||||
property ArtLine: Boolean read FArtLine write SetArtLine default False;
|
|
||||||
property BorderStyle: TBorderStyle read FBorderStyle write SetBorderStyle default bsSingle;
|
property BorderStyle: TBorderStyle read FBorderStyle write SetBorderStyle default bsSingle;
|
||||||
property BorderWidth: Integer read FBorderWidth write SetBorderWidth default 1;
|
property BorderWidth: Integer read FBorderWidth write SetBorderWidth default 1;
|
||||||
property BorderColor: TColor read FBorderColor write SetBorderColor default clNone;
|
property BorderColor: TColor read FBorderColor write SetBorderColor default clNone;
|
||||||
@ -530,6 +527,58 @@ type
|
|||||||
function AvgValue: Integer;
|
function AvgValue: Integer;
|
||||||
function First: Integer;
|
function First: Integer;
|
||||||
function Last: Integer;
|
function Last: Integer;
|
||||||
|
function VisibleCount: Integer;
|
||||||
|
end;
|
||||||
|
|
||||||
|
TDiagramScaleValueArtLines = class(TPersistent)
|
||||||
|
private
|
||||||
|
{ Private-Deklarationen }
|
||||||
|
FDiagram: TDiagram;
|
||||||
|
FVisible: Boolean;
|
||||||
|
FColor: TColor;
|
||||||
|
FWidth: Integer;
|
||||||
|
FDotted: Boolean;
|
||||||
|
{ Methoden }
|
||||||
|
procedure SetVisible(Value: Boolean);
|
||||||
|
procedure SetColor(Value: TColor);
|
||||||
|
procedure SetWidth(Value: Integer);
|
||||||
|
procedure SetDotted(Value: Boolean);
|
||||||
|
public
|
||||||
|
{ Public-Deklarationen }
|
||||||
|
constructor Create(ADiagram: TDiagram);
|
||||||
|
destructor Destroy; override;
|
||||||
|
published
|
||||||
|
{ Published-Deklarationen }
|
||||||
|
property Visible: Boolean read FVisible write SetVisible default False;
|
||||||
|
property Color: TColor read FColor write SetColor default clDkGray;
|
||||||
|
property Width: Integer read FWidth write SetWidth default 1;
|
||||||
|
property Dotted: Boolean read FDotted write SetDotted default True;
|
||||||
|
end;
|
||||||
|
|
||||||
|
TDiagramScaleCursorArtLines = class(TDiagramScaleValueArtLines)
|
||||||
|
public
|
||||||
|
{ Public-Deklarationen }
|
||||||
|
constructor Create(ADiagram: TDiagram);
|
||||||
|
destructor Destroy; override;
|
||||||
|
published
|
||||||
|
{ Published-Deklarationen }
|
||||||
|
property Dotted: Boolean read FDotted write SetDotted default False;
|
||||||
|
end;
|
||||||
|
|
||||||
|
TDiagramScaleArtLines = class(TPersistent)
|
||||||
|
private
|
||||||
|
{ Private-Deklarationen }
|
||||||
|
FDiagram: TDiagram;
|
||||||
|
FValues: TDiagramScaleValueArtLines;
|
||||||
|
FCursor: TDiagramScaleCursorArtLines;
|
||||||
|
public
|
||||||
|
{ Public-Deklarationen }
|
||||||
|
constructor Create(ADiagram: TDiagram);
|
||||||
|
destructor Destroy; override;
|
||||||
|
published
|
||||||
|
{ Published-Deklarationen }
|
||||||
|
property Values: TDiagramScaleValueArtLines read FValues write FValues;
|
||||||
|
property Cursor: TDiagramScaleCursorArtLines read FCursor write FCursor;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
TDiagramScaleBar = class(TPersistent)
|
TDiagramScaleBar = class(TPersistent)
|
||||||
@ -620,6 +669,7 @@ type
|
|||||||
private
|
private
|
||||||
{ Private-Deklarationen }
|
{ Private-Deklarationen }
|
||||||
FDiagram: TDiagram;
|
FDiagram: TDiagram;
|
||||||
|
FArtLines: TDiagramScaleArtLines;
|
||||||
FBar: TDiagramScaleBar;
|
FBar: TDiagramScaleBar;
|
||||||
FGrid: TDiagramScaleGrid;
|
FGrid: TDiagramScaleGrid;
|
||||||
FValues: TDiagramScaleValues;
|
FValues: TDiagramScaleValues;
|
||||||
@ -629,6 +679,7 @@ type
|
|||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
published
|
published
|
||||||
{ Published-Deklarationen }
|
{ Published-Deklarationen }
|
||||||
|
property ArtLines: TDiagramScaleArtlines read FArtLines write FArtLines;
|
||||||
property Bar: TDiagramScaleBar read FBar write FBar;
|
property Bar: TDiagramScaleBar read FBar write FBar;
|
||||||
property Grid: TDiagramScaleGrid read FGrid write FGrid;
|
property Grid: TDiagramScaleGrid read FGrid write FGrid;
|
||||||
property Values: TDiagramScaleValues read FValues write FValues;
|
property Values: TDiagramScaleValues read FValues write FValues;
|
||||||
@ -659,6 +710,31 @@ type
|
|||||||
property VerticalAlignment: TVerticalAlignment read FVerticalAlignment write SetVerticalAlignment default taAlignTop;
|
property VerticalAlignment: TVerticalAlignment read FVerticalAlignment write SetVerticalAlignment default taAlignTop;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
TDiagramAutoColors = class(TPersistent)
|
||||||
|
private
|
||||||
|
{ Private-Deklarationen }
|
||||||
|
FDiagram: TDiagram;
|
||||||
|
FEnabled: Boolean;
|
||||||
|
FPositive: TColor;
|
||||||
|
FZero: TColor;
|
||||||
|
FNegative: TColor;
|
||||||
|
{ Methoden }
|
||||||
|
procedure SetEnabled(Value: Boolean);
|
||||||
|
procedure SetPositive(Value: TColor);
|
||||||
|
procedure SetZero(Value: TColor);
|
||||||
|
procedure SetNegative(Value: TColor);
|
||||||
|
public
|
||||||
|
{ Public-Deklarationen }
|
||||||
|
constructor Create(ADiagram: TDiagram);
|
||||||
|
destructor Destroy; override;
|
||||||
|
published
|
||||||
|
{ Published-Deklarationen }
|
||||||
|
property Enabled: Boolean read FEnabled write SetEnabled default False;
|
||||||
|
property Positive: TColor read FPositive write SetPositive default clBlue;
|
||||||
|
property Zero: TColor read FZero write SetZero default clWhite;
|
||||||
|
property Negative: TColor read FNegative write SetNegative default clRed;
|
||||||
|
end;
|
||||||
|
|
||||||
{$IFNDEF NO_MULTIPLATFORM}
|
{$IFNDEF NO_MULTIPLATFORM}
|
||||||
[ComponentPlatformsAttribute(pidWin32 or pidWin64)]
|
[ComponentPlatformsAttribute(pidWin32 or pidWin64)]
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
@ -671,7 +747,7 @@ type
|
|||||||
FValues: TDiagramValues;
|
FValues: TDiagramValues;
|
||||||
FPadding: TDiagramPadding;
|
FPadding: TDiagramPadding;
|
||||||
FScale: TDiagramScale;
|
FScale: TDiagramScale;
|
||||||
FAutoColor: Boolean;
|
FAutoColors: TDiagramAutoColors;
|
||||||
FAlignment: TAlignment;
|
FAlignment: TAlignment;
|
||||||
{ Ereignisse }
|
{ Ereignisse }
|
||||||
FDrawValueEvent: TDiagramDrawValueEvent;
|
FDrawValueEvent: TDiagramDrawValueEvent;
|
||||||
@ -682,19 +758,19 @@ type
|
|||||||
procedure SetValues(Value: TDiagramValues);
|
procedure SetValues(Value: TDiagramValues);
|
||||||
procedure SetPadding(Value: TDiagramPadding);
|
procedure SetPadding(Value: TDiagramPadding);
|
||||||
procedure SetScale(Value: TDiagramScale);
|
procedure SetScale(Value: TDiagramScale);
|
||||||
procedure SetAutoColor(Value: Boolean);
|
|
||||||
procedure PropertyChange(Sender: TObject);
|
|
||||||
protected
|
protected
|
||||||
{ Protected-Deklarationen }
|
{ Protected-Deklarationen }
|
||||||
procedure Paint; override;
|
procedure Paint; override;
|
||||||
procedure DrawBackground;
|
procedure DrawBackground; virtual;
|
||||||
procedure DrawCaption;
|
procedure DrawCaption; virtual;
|
||||||
procedure DrawBar;
|
procedure DrawBar; virtual;
|
||||||
procedure DrawGrid;
|
procedure DrawGrid; virtual;
|
||||||
procedure DrawValue(Index: Integer);
|
procedure DrawValueArtLines; virtual;
|
||||||
procedure DrawColumn(Index: Integer);
|
procedure DrawCursorArtLines; virtual;
|
||||||
procedure DrawPoint(Index: Integer);
|
procedure DrawValue(Index: Integer); virtual;
|
||||||
procedure DrawLine(Index: Integer);
|
procedure DrawColumn(Index: Integer); virtual;
|
||||||
|
procedure DrawPoint(Index: Integer); virtual;
|
||||||
|
procedure DrawLine(Index: Integer); virtual;
|
||||||
function ZeroWidth: Integer;
|
function ZeroWidth: Integer;
|
||||||
function ZeroHeight: Integer;
|
function ZeroHeight: Integer;
|
||||||
function ValueHeight(Value: Integer): Integer;
|
function ValueHeight(Value: Integer): Integer;
|
||||||
@ -702,6 +778,10 @@ type
|
|||||||
function ValueLeft(Index: Integer): Integer;
|
function ValueLeft(Index: Integer): Integer;
|
||||||
function ValueWidth: Integer;
|
function ValueWidth: Integer;
|
||||||
function ValueSpace: Integer;
|
function ValueSpace: Integer;
|
||||||
|
procedure PropertyChange(Sender: TObject);
|
||||||
|
procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;
|
||||||
|
procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
|
||||||
|
procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
|
||||||
public
|
public
|
||||||
{ Public-Deklarationen }
|
{ Public-Deklarationen }
|
||||||
constructor Create(AOwner: TComponent); override;
|
constructor Create(AOwner: TComponent); override;
|
||||||
@ -745,7 +825,7 @@ type
|
|||||||
property Values: TDiagramValues read FValues write SetValues;
|
property Values: TDiagramValues read FValues write SetValues;
|
||||||
property Padding: TDiagramPadding read FPadding write SetPadding;
|
property Padding: TDiagramPadding read FPadding write SetPadding;
|
||||||
property Scale: TDiagramScale read FScale write SetScale;
|
property Scale: TDiagramScale read FScale write SetScale;
|
||||||
property AutoColor: Boolean read FAutoColor write SetAutoColor default False;
|
property AutoColors: TDiagramAutoColors read FAutoColors write FAutoColors;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ ShowMessage-Varianten }
|
{ ShowMessage-Varianten }
|
||||||
@ -2150,7 +2230,7 @@ end;
|
|||||||
|
|
||||||
destructor TDiagramPadding.Destroy;
|
destructor TDiagramPadding.Destroy;
|
||||||
begin
|
begin
|
||||||
FDiagram := nil;
|
//...
|
||||||
inherited;
|
inherited;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -2195,7 +2275,6 @@ begin
|
|||||||
FColor := clNone;
|
FColor := clNone;
|
||||||
FValue := 0;
|
FValue := 0;
|
||||||
FVisible := True;
|
FVisible := True;
|
||||||
FArtLine := False;
|
|
||||||
FBorderStyle := bsSingle;
|
FBorderStyle := bsSingle;
|
||||||
FBorderWidth := 1;
|
FBorderWidth := 1;
|
||||||
FBorderColor := clNone;
|
FBorderColor := clNone;
|
||||||
@ -2231,12 +2310,6 @@ begin
|
|||||||
(Collection as TDiagramValues).FDiagram.Repaint;
|
(Collection as TDiagramValues).FDiagram.Repaint;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TDiagramValue.SetArtLine(Value: Boolean);
|
|
||||||
begin
|
|
||||||
FArtLine := Value;
|
|
||||||
(Collection as TDiagramValues).FDiagram.Repaint;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TDiagramValue.SetBorderStyle(Value: TBorderStyle);
|
procedure TDiagramValue.SetBorderStyle(Value: TBorderStyle);
|
||||||
begin
|
begin
|
||||||
FBorderStyle := Value;
|
FBorderStyle := Value;
|
||||||
@ -2258,7 +2331,7 @@ end;
|
|||||||
function TDiagramValue.GetDisplayName: String;
|
function TDiagramValue.GetDisplayName: String;
|
||||||
begin
|
begin
|
||||||
inherited;
|
inherited;
|
||||||
Result:= FName;
|
Result:= FName + ' (' + IntToStr(FValue) + ')';
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ ----------------------------------------------------------------------------
|
{ ----------------------------------------------------------------------------
|
||||||
@ -2273,7 +2346,7 @@ end;
|
|||||||
|
|
||||||
destructor TDiagramValues.Destroy;
|
destructor TDiagramValues.Destroy;
|
||||||
begin
|
begin
|
||||||
FDiagram := nil;
|
//...
|
||||||
inherited;
|
inherited;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -2358,7 +2431,99 @@ begin
|
|||||||
Exit;
|
Exit;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
Result := -1;
|
end;
|
||||||
|
|
||||||
|
function TDiagramValues.VisibleCount: Integer;
|
||||||
|
var
|
||||||
|
Index: Integer;
|
||||||
|
begin
|
||||||
|
Result := 0;
|
||||||
|
for Index := 0 to Count - 1 do
|
||||||
|
begin
|
||||||
|
if (Items[Index] as TDiagramValue).Visible then
|
||||||
|
begin
|
||||||
|
Inc(Result);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ ----------------------------------------------------------------------------
|
||||||
|
TDiagramScaleValueArtLines
|
||||||
|
---------------------------------------------------------------------------- }
|
||||||
|
|
||||||
|
constructor TDiagramScaleValueArtLines.Create(ADiagram: TDiagram);
|
||||||
|
begin
|
||||||
|
inherited Create;
|
||||||
|
FDiagram := ADiagram;
|
||||||
|
FVisible := False;
|
||||||
|
FColor := clDkGray;
|
||||||
|
FWidth := 1;
|
||||||
|
FDotted := True;
|
||||||
|
end;
|
||||||
|
|
||||||
|
destructor TDiagramScaleValueArtLines.Destroy;
|
||||||
|
begin
|
||||||
|
//...
|
||||||
|
inherited;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TDiagramScaleValueArtLines.SetVisible(Value: Boolean);
|
||||||
|
begin
|
||||||
|
FVisible := Value;
|
||||||
|
FDiagram.Repaint;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TDiagramScaleValueArtLines.SetColor(Value: TColor);
|
||||||
|
begin
|
||||||
|
FColor := Value;
|
||||||
|
FDiagram.Repaint;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TDiagramScaleValueArtLines.SetWidth(Value: Integer);
|
||||||
|
begin
|
||||||
|
FWidth := Value;
|
||||||
|
FDiagram.Repaint;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TDiagramScaleValueArtLines.SetDotted(Value: Boolean);
|
||||||
|
begin
|
||||||
|
FDotted := Value;
|
||||||
|
FDiagram.Repaint;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ ----------------------------------------------------------------------------
|
||||||
|
TDiagramScaleCursorArtLines
|
||||||
|
---------------------------------------------------------------------------- }
|
||||||
|
|
||||||
|
constructor TDiagramScaleCursorArtLines.Create(ADiagram: TDiagram);
|
||||||
|
begin
|
||||||
|
inherited;
|
||||||
|
FDotted := False;
|
||||||
|
end;
|
||||||
|
|
||||||
|
destructor TDiagramScaleCursorArtLines.Destroy;
|
||||||
|
begin
|
||||||
|
//...
|
||||||
|
inherited;
|
||||||
|
end;
|
||||||
|
|
||||||
|
{ ----------------------------------------------------------------------------
|
||||||
|
TDiagramScaleArtLines
|
||||||
|
---------------------------------------------------------------------------- }
|
||||||
|
|
||||||
|
constructor TDiagramScaleArtLines.Create(ADiagram: TDiagram);
|
||||||
|
begin
|
||||||
|
inherited Create;
|
||||||
|
FDiagram := ADiagram;
|
||||||
|
FValues := TDiagramScaleValueArtLines.Create(ADiagram);
|
||||||
|
FCursor := TDiagramScaleCursorArtLines.Create(ADiagram);
|
||||||
|
end;
|
||||||
|
|
||||||
|
destructor TDiagramScaleArtLines.Destroy;
|
||||||
|
begin
|
||||||
|
FValues.Free;
|
||||||
|
FCursor.Free;
|
||||||
|
inherited;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ ----------------------------------------------------------------------------
|
{ ----------------------------------------------------------------------------
|
||||||
@ -2379,7 +2544,7 @@ end;
|
|||||||
|
|
||||||
destructor TDiagramScaleBar.Destroy;
|
destructor TDiagramScaleBar.Destroy;
|
||||||
begin
|
begin
|
||||||
FDiagram := nil;
|
//...
|
||||||
inherited;
|
inherited;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -2441,7 +2606,7 @@ end;
|
|||||||
|
|
||||||
destructor TDiagramScaleGrid.Destroy;
|
destructor TDiagramScaleGrid.Destroy;
|
||||||
begin
|
begin
|
||||||
FDiagram := nil;
|
//...
|
||||||
inherited;
|
inherited;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -2501,7 +2666,6 @@ end;
|
|||||||
|
|
||||||
destructor TDiagramScaleValues.Destroy;
|
destructor TDiagramScaleValues.Destroy;
|
||||||
begin
|
begin
|
||||||
FDiagram := nil;
|
|
||||||
FFont.Free;
|
FFont.Free;
|
||||||
inherited;
|
inherited;
|
||||||
end;
|
end;
|
||||||
@ -2532,13 +2696,15 @@ constructor TDiagramScale.Create(ADiagram: TDiagram);
|
|||||||
begin
|
begin
|
||||||
inherited Create;
|
inherited Create;
|
||||||
FDiagram := ADiagram;
|
FDiagram := ADiagram;
|
||||||
FBar := TDiagramScaleBar.Create(ADiaGram);
|
FArtLines := TDiagramScaleArtLines.Create(ADiagram);
|
||||||
|
FBar := TDiagramScaleBar.Create(ADiagram);
|
||||||
FGrid := TDiagramScaleGrid.Create(ADiagram);
|
FGrid := TDiagramScaleGrid.Create(ADiagram);
|
||||||
FValues := TDiagramScaleValues.Create(ADiagram);
|
FValues := TDiagramScaleValues.Create(ADiagram);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
destructor TDiagramScale.Destroy;
|
destructor TDiagramScale.Destroy;
|
||||||
begin
|
begin
|
||||||
|
FArtLines.Free;
|
||||||
FBar.Free;
|
FBar.Free;
|
||||||
FGrid.Free;
|
FGrid.Free;
|
||||||
FValues.Free;
|
FValues.Free;
|
||||||
@ -2562,7 +2728,6 @@ end;
|
|||||||
|
|
||||||
destructor TDiagramCaption.Destroy;
|
destructor TDiagramCaption.Destroy;
|
||||||
begin
|
begin
|
||||||
FDiagram := nil;
|
|
||||||
FFont.Free;
|
FFont.Free;
|
||||||
inherited;
|
inherited;
|
||||||
end;
|
end;
|
||||||
@ -2591,6 +2756,50 @@ begin
|
|||||||
FDiagram.Repaint;
|
FDiagram.Repaint;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{ ----------------------------------------------------------------------------
|
||||||
|
TDiagramAutoColors
|
||||||
|
---------------------------------------------------------------------------- }
|
||||||
|
|
||||||
|
constructor TDiagramAutoColors.Create(ADiagram: TDiagram);
|
||||||
|
begin
|
||||||
|
inherited Create;
|
||||||
|
FDiagram := ADiagram;
|
||||||
|
FEnabled := False;
|
||||||
|
FPositive := clBlue;
|
||||||
|
FZero := clWhite;
|
||||||
|
FNegative := clRed;
|
||||||
|
end;
|
||||||
|
|
||||||
|
destructor TDiagramAutoColors.Destroy;
|
||||||
|
begin
|
||||||
|
//...
|
||||||
|
inherited;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TDiagramAutoColors.SetEnabled(Value: Boolean);
|
||||||
|
begin
|
||||||
|
FEnabled := Value;
|
||||||
|
FDiagram.Repaint;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TDiagramAutoColors.SetPositive(Value: TColor);
|
||||||
|
begin
|
||||||
|
FPositive := Value;
|
||||||
|
FDiagram.Repaint;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TDiagramAutoColors.SetZero(Value: TColor);
|
||||||
|
begin
|
||||||
|
FZero := Value;
|
||||||
|
FDiagram.Repaint;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TDiagramAutoColors.SetNegative(Value: TColor);
|
||||||
|
begin
|
||||||
|
FNegative := Value;
|
||||||
|
FDiagram.Repaint;
|
||||||
|
end;
|
||||||
|
|
||||||
{ ----------------------------------------------------------------------------
|
{ ----------------------------------------------------------------------------
|
||||||
TDiagram
|
TDiagram
|
||||||
---------------------------------------------------------------------------- }
|
---------------------------------------------------------------------------- }
|
||||||
@ -2606,7 +2815,7 @@ begin
|
|||||||
Height := 50;
|
Height := 50;
|
||||||
FPadding := TDiagramPadding.Create(Self);
|
FPadding := TDiagramPadding.Create(Self);
|
||||||
FScale := TDiagramScale.Create(Self);
|
FScale := TDiagramScale.Create(Self);
|
||||||
FAutoColor := False;
|
FAutoColors := TDiagramAutoColors.Create(Self);
|
||||||
//OnChange-Ereignisse
|
//OnChange-Ereignisse
|
||||||
FCaption.Font.OnChange := PropertyChange;
|
FCaption.Font.OnChange := PropertyChange;
|
||||||
FScale.Values.Font.OnChange := PropertyChange;
|
FScale.Values.Font.OnChange := PropertyChange;
|
||||||
@ -2619,6 +2828,7 @@ begin
|
|||||||
FValues.Free;
|
FValues.Free;
|
||||||
FPadding.Free;
|
FPadding.Free;
|
||||||
FScale.Free;
|
FScale.Free;
|
||||||
|
FAutoColors.Free;
|
||||||
inherited;
|
inherited;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -2652,12 +2862,6 @@ begin
|
|||||||
Repaint;
|
Repaint;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TDiagram.SetAutoColor(Value: Boolean);
|
|
||||||
begin
|
|
||||||
FAutoColor := Value;
|
|
||||||
Repaint;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TDiagram.PropertyChange(Sender: TObject);
|
procedure TDiagram.PropertyChange(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
Repaint;
|
Repaint;
|
||||||
@ -2686,40 +2890,56 @@ begin
|
|||||||
begin
|
begin
|
||||||
DrawBar;
|
DrawBar;
|
||||||
end;
|
end;
|
||||||
|
if Scale.ArtLines.Values.Visible then
|
||||||
|
begin
|
||||||
|
DrawValueArtLines;
|
||||||
|
end;
|
||||||
case Layout of
|
case Layout of
|
||||||
dloColumns: for Index := 0 to Values.Count - 1 do
|
dloColumns: for Index := 0 to Values.Count - 1 do
|
||||||
begin
|
begin
|
||||||
DrawColumn(Index);
|
if (Values.Items[Index] as TDiagramValue).Visible then
|
||||||
|
begin
|
||||||
|
DrawColumn(Index);
|
||||||
|
if Assigned(OnDrawValue) then
|
||||||
|
begin
|
||||||
|
OnDrawValue(Self,Index);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
dloPoints: for Index := 0 to Values.Count - 1 do
|
||||||
|
begin
|
||||||
|
if (Values.Items[Index] as TDiagramValue).Visible then
|
||||||
|
begin
|
||||||
|
DrawPoint(Index);
|
||||||
|
if Assigned(OnDrawValue) then
|
||||||
|
begin
|
||||||
|
OnDrawValue(Self,Index);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
dloLines: for Index := 0 to Values.Count - 1 do
|
||||||
|
begin
|
||||||
|
if (Values.Items[Index] as TDiagramValue).Visible then
|
||||||
|
begin
|
||||||
|
DrawLine(Index);
|
||||||
if Assigned(OnDrawValue) then
|
if Assigned(OnDrawValue) then
|
||||||
begin
|
begin
|
||||||
OnDrawValue(Self,Index);
|
OnDrawValue(Self,Index);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
dloPoints: for Index := 0 to Values.Count - 1 do
|
|
||||||
begin
|
|
||||||
DrawPoint(Index);
|
|
||||||
if Assigned(OnDrawValue) then
|
|
||||||
begin
|
|
||||||
OnDrawValue(Self,Index);
|
|
||||||
end;
|
|
||||||
end;
|
|
||||||
dloLines: for Index := 0 to Values.Count - 1 do
|
|
||||||
begin
|
|
||||||
DrawLine(Index);
|
|
||||||
if Assigned(OnDrawValue) then
|
|
||||||
begin
|
|
||||||
OnDrawValue(Self,Index);
|
|
||||||
end;
|
|
||||||
end;
|
end;
|
||||||
dloCustom: for Index := 0 to Values.Count - 1 do
|
dloCustom: for Index := 0 to Values.Count - 1 do
|
||||||
begin
|
begin
|
||||||
if Assigned(OnCustomDrawValue) then
|
if (Values.Items[Index] as TDiagramValue).Visible then
|
||||||
begin
|
begin
|
||||||
OnCustomDrawValue(Self,Index,ValueRect(Index));
|
if Assigned(OnCustomDrawValue) then
|
||||||
end;
|
begin
|
||||||
if Assigned(OnDrawValue) then
|
OnCustomDrawValue(Self,Index,ValueRect(Index));
|
||||||
begin
|
end;
|
||||||
OnDrawValue(Self,Index);
|
if Assigned(OnDrawValue) then
|
||||||
|
begin
|
||||||
|
OnDrawValue(Self,Index);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
@ -2730,6 +2950,10 @@ begin
|
|||||||
DrawValue(Index);
|
DrawValue(Index);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
if Scale.ArtLines.Cursor.Visible then
|
||||||
|
begin
|
||||||
|
DrawCursorArtLines;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TDiagram.DrawBackground;
|
procedure TDiagram.DrawBackground;
|
||||||
@ -2878,6 +3102,70 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TDiagram.DrawValueArtLines;
|
||||||
|
var
|
||||||
|
Index: Integer;
|
||||||
|
begin
|
||||||
|
with Canvas do
|
||||||
|
begin
|
||||||
|
if Scale.ArtLines.Values.Dotted then
|
||||||
|
begin
|
||||||
|
Canvas.Pen.Style := psDot;
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
Canvas.Pen.Style := psSolid;
|
||||||
|
end;
|
||||||
|
Canvas.Pen.Color := Scale.ArtLines.Values.Color;
|
||||||
|
Canvas.Pen.Width := Scale.ArtLines.Values.Width;
|
||||||
|
for Index := 0 to Values.Count - 1 do
|
||||||
|
begin
|
||||||
|
if (Values.Items[Index] as TDiagramValue).Value <> 0 then
|
||||||
|
begin
|
||||||
|
if (Values.Items[Index] as TDiagramValue).Value > 0 then
|
||||||
|
begin
|
||||||
|
MoveTo(ZeroWidth,ValueHeight((Values.Items[Index] as TDiagramValue).Value));
|
||||||
|
LineTo(ValueLeft(Index) + ValueWidth div 2,ValueHeight((Values.Items[Index] as TDiagramValue).Value));
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
MoveTo(ZeroWidth,ValueHeight((Values.Items[Index] as TDiagramValue).Value) - 1);
|
||||||
|
LineTo(ValueLeft(Index) + ValueWidth div 2,ValueHeight((Values.Items[Index] as TDiagramValue).Value) - 1);
|
||||||
|
end;
|
||||||
|
LineTo(ValueLeft(Index) + ValueWidth div 2,ZeroHeight);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TDiagram.DrawCursorArtLines;
|
||||||
|
var
|
||||||
|
Index: Integer;
|
||||||
|
CursorPos: TPoint;
|
||||||
|
begin
|
||||||
|
if not (csDesigning in ComponentState) then
|
||||||
|
begin
|
||||||
|
with Canvas do
|
||||||
|
begin
|
||||||
|
if Scale.ArtLines.Cursor.Dotted then
|
||||||
|
begin
|
||||||
|
Canvas.Pen.Style := psDot;
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
Canvas.Pen.Style := psSolid;
|
||||||
|
end;
|
||||||
|
Canvas.Pen.Color := Scale.ArtLines.Cursor.Color;
|
||||||
|
Canvas.Pen.Width := Scale.ArtLines.Cursor.Width;
|
||||||
|
GetCursorPos(CursorPos);
|
||||||
|
CursorPos := ScreenToClient(CursorPos);
|
||||||
|
if (CursorPos.Y <> ZeroHeight) and (CursorPos.X >= 0) and (CursorPos.X < Width) and (CursorPos.Y >= 0) and (CursorPos.Y < Height) then
|
||||||
|
begin
|
||||||
|
MoveTo(ZeroWidth,CursorPos.Y);
|
||||||
|
LineTo(CursorPos.X,CursorPos.Y);
|
||||||
|
LineTo(CursorPos.X,ZeroHeight);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TDiagram.DrawValue(Index: Integer);
|
procedure TDiagram.DrawValue(Index: Integer);
|
||||||
begin
|
begin
|
||||||
with Canvas do
|
with Canvas do
|
||||||
@ -2893,14 +3181,20 @@ begin
|
|||||||
Pen.Width := (Values.Items[Index] as TDiagramValue).BorderWidth;
|
Pen.Width := (Values.Items[Index] as TDiagramValue).BorderWidth;
|
||||||
Pen.Color := (Values.Items[Index] as TDiagramValue).BorderColor;
|
Pen.Color := (Values.Items[Index] as TDiagramValue).BorderColor;
|
||||||
Pen.Style := psSolid;
|
Pen.Style := psSolid;
|
||||||
Brush.Color := (Values.Items[Index] as TDiagramValue).Color;
|
if AutoColors.Enabled then
|
||||||
if (Values.Items[Index] as TDiagramValue).Value > 0 then
|
|
||||||
begin
|
begin
|
||||||
Rectangle(ValueLeft(Index),ZeroHeight,ValueLeft(Index) + ValueWidth,ValueHeight((Values.Items[Index] as TDiagramValue).Value));
|
if (Values.Items[Index] as TDiagramValue).Value > 0 then
|
||||||
|
begin
|
||||||
|
Brush.Color := AutoColors.Positive;
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
Brush.Color := AutoColors.Negative;
|
||||||
|
end;
|
||||||
end else
|
end else
|
||||||
begin
|
begin
|
||||||
Rectangle(ValueLeft(Index),ZeroHeight,ValueLeft(Index) + ValueWidth,ValueHeight((Values.Items[Index] as TDiagramValue).Value) - 1);
|
Brush.Color := (Values.Items[Index] as TDiagramValue).Color;
|
||||||
end;
|
end;
|
||||||
|
Rectangle(ValueLeft(Index),ZeroHeight,ValueLeft(Index) + ValueWidth,ValueHeight((Values.Items[Index] as TDiagramValue).Value));
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -2911,14 +3205,26 @@ begin
|
|||||||
Pen.Width := (Values.Items[Index] as TDiagramValue).BorderWidth;
|
Pen.Width := (Values.Items[Index] as TDiagramValue).BorderWidth;
|
||||||
Pen.Color := (Values.Items[Index] as TDiagramValue).BorderColor;
|
Pen.Color := (Values.Items[Index] as TDiagramValue).BorderColor;
|
||||||
Pen.Style := psSolid;
|
Pen.Style := psSolid;
|
||||||
Brush.Color := (Values.Items[Index] as TDiagramValue).Color;
|
if AutoColors.Enabled then
|
||||||
if (Values.Items[Index] as TDiagramValue).Value > 0 then
|
|
||||||
begin
|
begin
|
||||||
Ellipse(ValueLeft(Index),ValueHeight((Values.Items[Index] as TDiagramValue).Value) - ValueSpace div 2,ValueLeft(Index) + ValueWidth,ValueHeight((Values.Items[Index] as TDiagramValue).Value) + ValueSpace div 2);
|
if (Values.Items[Index] as TDiagramValue).Value = 0 then
|
||||||
|
begin
|
||||||
|
Brush.Color := AutoColors.Zero;
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
if (Values.Items[Index] as TDiagramValue).Value > 0 then
|
||||||
|
begin
|
||||||
|
Brush.Color := AutoColors.Positive;
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
Brush.Color := AutoColors.Negative;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
end else
|
end else
|
||||||
begin
|
begin
|
||||||
Ellipse(ValueLeft(Index),ValueHeight((Values.Items[Index] as TDiagramValue).Value) - ValueSpace div 2,ValueLeft(Index) + ValueWidth,ValueHeight((Values.Items[Index] as TDiagramValue).Value) + ValueSpace div 2 - 1);
|
Brush.Color := (Values.Items[Index] as TDiagramValue).Color;
|
||||||
end;
|
end;
|
||||||
|
Ellipse(ValueLeft(Index),ValueHeight((Values.Items[Index] as TDiagramValue).Value) - ValueSpace div 2,ValueLeft(Index) + ValueWidth,ValueHeight((Values.Items[Index] as TDiagramValue).Value) + ValueSpace div 2);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -3031,8 +3337,17 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
function TDiagram.ValueLeft(Index: Integer): Integer;
|
function TDiagram.ValueLeft(Index: Integer): Integer;
|
||||||
|
var
|
||||||
|
ValueIndex: Integer;
|
||||||
begin
|
begin
|
||||||
Result := ZeroWidth + (Index + 1) * Padding.Left + Index * Padding.Right + Index * ValueWidth;
|
Result := ZeroWidth + Padding.Left;
|
||||||
|
for ValueIndex := 1 to Index do
|
||||||
|
begin
|
||||||
|
if (Values.Items[ValueIndex] as TDiagramValue).Visible then
|
||||||
|
begin
|
||||||
|
Inc(Result,ValueSpace);
|
||||||
|
end;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TDiagram.ValueWidth: Integer;
|
function TDiagram.ValueWidth: Integer;
|
||||||
@ -3042,7 +3357,40 @@ end;
|
|||||||
|
|
||||||
function TDiagram.ValueSpace: Integer;
|
function TDiagram.ValueSpace: Integer;
|
||||||
begin
|
begin
|
||||||
Result := (Width - ZeroWidth) div Values.Count;
|
if Values.Count = 0 then
|
||||||
|
begin
|
||||||
|
Result := 0;
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
Result := (Width - ZeroWidth) div Values.VisibleCount;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TDiagram.MouseMove(Shift: TShiftState; X, Y: Integer);
|
||||||
|
begin
|
||||||
|
inherited;
|
||||||
|
if Scale.FArtLines.Cursor.Visible then
|
||||||
|
begin
|
||||||
|
Repaint;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TDiagram.CMMouseEnter(var Message: TMessage);
|
||||||
|
begin
|
||||||
|
inherited;
|
||||||
|
if Scale.FArtLines.Cursor.Visible then
|
||||||
|
begin
|
||||||
|
Repaint;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TDiagram.CMMouseLeave(var Message: TMessage);
|
||||||
|
begin
|
||||||
|
inherited;
|
||||||
|
if Scale.FArtLines.Cursor.Visible then
|
||||||
|
begin
|
||||||
|
Repaint;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TDiagram.ValueRect(Index: Integer): TRect;
|
function TDiagram.ValueRect(Index: Integer): TRect;
|
||||||
@ -3052,7 +3400,13 @@ end;
|
|||||||
|
|
||||||
function TDiagram.ValueRect(Value: TDiagramValue): TRect;
|
function TDiagram.ValueRect(Value: TDiagramValue): TRect;
|
||||||
begin
|
begin
|
||||||
Result := Rect(ValueLeft(Value.Index),Padding.Top,ValueLeft(Value.Index) + ValueWidth,Height - Padding.Bottom);
|
if Value.Visible then
|
||||||
|
begin
|
||||||
|
Result := Rect(ValueLeft(Value.Index),Padding.Top,ValueLeft(Value.Index) + ValueWidth,Height - Padding.Bottom);
|
||||||
|
end else
|
||||||
|
begin
|
||||||
|
Result := Rect(ValueLeft(Value.Index),Padding.Top,ValueLeft(Value.Index),Height - Padding.Bottom);
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user