1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
|
{
*****************************************************************************
See the file COPYING.modifiedLGPL.txt, included in this distribution,
for details about the license.
*****************************************************************************
Authors: Alexander Klenin
}
unit TAGUIConnector;
{$H+}
interface
uses
Classes, Graphics,
TAChartUtils, TADrawUtils, TADrawerCanvas;
type
TChartGUIConnectorData = record
FBounds: TRect;
FCanvas: TCanvas;
FDrawer: IChartDrawer;
FDrawerBounds: TRect;
end;
TChartGUIConnector = class(TComponent)
strict private
FBroadcaster: TBroadcaster;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure CreateDrawer(var AData: TChartGUIConnectorData); virtual; abstract;
procedure SetBounds(var AData: TChartGUIConnectorData); virtual; abstract;
procedure Display(var AData: TChartGUIConnectorData); virtual; abstract;
property Broadcaster: TBroadcaster read FBroadcaster;
end;
TChartGUIConnectorCanvas = class(TChartGUIConnector)
public
procedure CreateDrawer(var AData: TChartGUIConnectorData); override;
procedure SetBounds(var AData: TChartGUIConnectorData); override;
procedure Display(var AData: TChartGUIConnectorData); override;
end;
implementation
uses
SysUtils;
{ TChartGUIConnector }
constructor TChartGUIConnector.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FBroadcaster := TBroadcaster.Create;
end;
destructor TChartGUIConnector.Destroy;
begin
FreeAndNil(FBroadcaster);
inherited;
end;
{ TChartGUIConnectorCanvas }
procedure TChartGUIConnectorCanvas.CreateDrawer(
var AData: TChartGUIConnectorData);
begin
AData.FDrawer := TCanvasDrawer.Create(AData.FCanvas);
end;
procedure TChartGUIConnectorCanvas.Display(var AData: TChartGUIConnectorData);
begin
Unused(AData);
end;
procedure TChartGUIConnectorCanvas.SetBounds(var AData: TChartGUIConnectorData);
begin
AData.FDrawerBounds := AData.FBounds;
end;
end.
|