mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-07-10 15:26:18 +02:00
TAChart: Add new chart events supporting the drawing backends (OnAfter/BeforeCustomDrawBackground/Backwall). Deprecate these old events using the standard Canvas. Deprecate Reticule.
git-svn-id: trunk@57299 -
This commit is contained in:
parent
6555bcc577
commit
38764c44e8
@ -153,6 +153,12 @@ type
|
|||||||
property List: TIndexedComponentList read FList;
|
property List: TIndexedComponentList read FList;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
TChartAfterCustomDrawEvent = procedure (
|
||||||
|
ASender: TChart; ADrawer: IChartDrawer; const ARect: TRect) of object;
|
||||||
|
TChartBeforeCustomDrawEvent = procedure (
|
||||||
|
ASender: TChart; ADrawer: IChartDrawer; const ARect: TRect;
|
||||||
|
var ADoDefaultDrawing: Boolean) of object;
|
||||||
|
|
||||||
TChartAfterDrawEvent = procedure (
|
TChartAfterDrawEvent = procedure (
|
||||||
ASender: TChart; ACanvas: TCanvas; const ARect: TRect) of object;
|
ASender: TChart; ACanvas: TCanvas; const ARect: TRect) of object;
|
||||||
TChartBeforeDrawEvent = procedure (
|
TChartBeforeDrawEvent = procedure (
|
||||||
@ -165,7 +171,6 @@ type
|
|||||||
TChartDrawEvent = procedure (
|
TChartDrawEvent = procedure (
|
||||||
ASender: TChart; ADrawer: IChartDrawer) of object;
|
ASender: TChart; ADrawer: IChartDrawer) of object;
|
||||||
|
|
||||||
|
|
||||||
TChartRenderingParams = record
|
TChartRenderingParams = record
|
||||||
FClipRect: TRect;
|
FClipRect: TRect;
|
||||||
FIsZoomed: Boolean;
|
FIsZoomed: Boolean;
|
||||||
@ -196,9 +201,13 @@ type
|
|||||||
FLogicalExtent: TDoubleRect;
|
FLogicalExtent: TDoubleRect;
|
||||||
FMargins: TChartMargins;
|
FMargins: TChartMargins;
|
||||||
FMarginsExternal: TChartMargins;
|
FMarginsExternal: TChartMargins;
|
||||||
|
FOnAfterCustomDrawBackground: TChartAfterCustomDrawEvent;
|
||||||
|
FOnAfterCustomDrawBackWall: TChartAfterCustomDrawEvent;
|
||||||
FOnAfterDraw: TChartDrawEvent;
|
FOnAfterDraw: TChartDrawEvent;
|
||||||
FOnAfterDrawBackground: TChartAfterDrawEvent;
|
FOnAfterDrawBackground: TChartAfterDrawEvent;
|
||||||
FOnAfterDrawBackWall: TChartAfterDrawEvent;
|
FOnAfterDrawBackWall: TChartAfterDrawEvent;
|
||||||
|
FOnBeforeCustomDrawBackground: TChartBeforeCustomDrawEvent;
|
||||||
|
FOnBeforeCustomDrawBackWall: TChartBeforeCustomDrawEvent;
|
||||||
FOnBeforeDrawBackground: TChartBeforeDrawEvent;
|
FOnBeforeDrawBackground: TChartBeforeDrawEvent;
|
||||||
FOnBeforeDrawBackWall: TChartBeforeDrawEvent;
|
FOnBeforeDrawBackWall: TChartBeforeDrawEvent;
|
||||||
FOnChartPaint: TChartPaintEvent;
|
FOnChartPaint: TChartPaintEvent;
|
||||||
@ -259,9 +268,13 @@ type
|
|||||||
procedure SetLogicalExtent(const AValue: TDoubleRect);
|
procedure SetLogicalExtent(const AValue: TDoubleRect);
|
||||||
procedure SetMargins(AValue: TChartMargins);
|
procedure SetMargins(AValue: TChartMargins);
|
||||||
procedure SetMarginsExternal(AValue: TChartMargins);
|
procedure SetMarginsExternal(AValue: TChartMargins);
|
||||||
|
procedure SetOnAfterCustomDrawBackground(AValue: TChartAfterCustomDrawEvent);
|
||||||
|
procedure SetOnAfterCustomDrawBackWall(AValue: TChartAfterCustomDrawEvent);
|
||||||
procedure SetOnAfterDraw(AValue: TChartDrawEvent);
|
procedure SetOnAfterDraw(AValue: TChartDrawEvent);
|
||||||
procedure SetOnAfterDrawBackground(AValue: TChartAfterDrawEvent);
|
procedure SetOnAfterDrawBackground(AValue: TChartAfterDrawEvent);
|
||||||
procedure SetOnAfterDrawBackWall(AValue: TChartAfterDrawEvent);
|
procedure SetOnAfterDrawBackWall(AValue: TChartAfterDrawEvent);
|
||||||
|
procedure SetOnBeforeCustomDrawBackground(AValue: TChartBeforeCustomDrawEvent);
|
||||||
|
procedure SetOnBeforeCustomDrawBackWall(AValue: TChartBeforeCustomDrawEvent);
|
||||||
procedure SetOnBeforeDrawBackground(AValue: TChartBeforeDrawEvent);
|
procedure SetOnBeforeDrawBackground(AValue: TChartBeforeDrawEvent);
|
||||||
procedure SetOnBeforeDrawBackWall(AValue: TChartBeforeDrawEvent);
|
procedure SetOnBeforeDrawBackWall(AValue: TChartBeforeDrawEvent);
|
||||||
procedure SetOnChartPaint(AValue: TChartPaintEvent);
|
procedure SetOnChartPaint(AValue: TChartPaintEvent);
|
||||||
@ -373,7 +386,7 @@ type
|
|||||||
property PrevLogicalExtent: TDoubleRect read FPrevLogicalExtent;
|
property PrevLogicalExtent: TDoubleRect read FPrevLogicalExtent;
|
||||||
property RenderingParams: TChartRenderingParams
|
property RenderingParams: TChartRenderingParams
|
||||||
read GetRenderingParams write SetRenderingParams;
|
read GetRenderingParams write SetRenderingParams;
|
||||||
property ReticulePos: TPoint read FReticulePos write SetReticulePos;
|
property ReticulePos: TPoint read FReticulePos write SetReticulePos; deprecated;
|
||||||
property SeriesCount: Integer read GetSeriesCount;
|
property SeriesCount: Integer read GetSeriesCount;
|
||||||
property XGraphMax: Double read FCurrentExtent.b.X;
|
property XGraphMax: Double read FCurrentExtent.b.X;
|
||||||
property XGraphMin: Double read FCurrentExtent.a.X;
|
property XGraphMin: Double read FCurrentExtent.a.X;
|
||||||
@ -406,26 +419,40 @@ type
|
|||||||
property Proportional: Boolean
|
property Proportional: Boolean
|
||||||
read FProportional write SetProportional default false;
|
read FProportional write SetProportional default false;
|
||||||
property ReticuleMode: TReticuleMode
|
property ReticuleMode: TReticuleMode
|
||||||
read FReticuleMode write SetReticuleMode default rmNone;
|
read FReticuleMode write SetReticuleMode default rmNone; deprecated 'Use DatapointCrosshairTool instead';
|
||||||
property Series: TChartSeriesList read FSeries;
|
property Series: TChartSeriesList read FSeries;
|
||||||
property Title: TChartTitle read FTitle write SetTitle;
|
property Title: TChartTitle read FTitle write SetTitle;
|
||||||
property Toolset: TBasicChartToolset read FToolset write SetToolset;
|
property Toolset: TBasicChartToolset read FToolset write SetToolset;
|
||||||
|
|
||||||
published
|
published
|
||||||
|
property OnAfterCustomDrawBackground: TChartAfterCustomDrawEvent
|
||||||
|
read FOnAfterCustomDrawBackground write SetOnAfterCustomDrawBackground;
|
||||||
|
property OnAfterCustomDrawBackWall: TChartAfterCustomDrawEvent
|
||||||
|
read FOnAfterCustomDrawBackWall write SetOnAfterCustomDrawBackWall;
|
||||||
property OnAfterDraw: TChartDrawEvent read FOnAfterDraw write SetOnAfterDraw;
|
property OnAfterDraw: TChartDrawEvent read FOnAfterDraw write SetOnAfterDraw;
|
||||||
|
deprecated 'Use OnAfterCustomDraw instead';
|
||||||
property OnAfterDrawBackground: TChartAfterDrawEvent
|
property OnAfterDrawBackground: TChartAfterDrawEvent
|
||||||
read FOnAfterDrawBackground write SetOnAfterDrawBackground;
|
read FOnAfterDrawBackground write SetOnAfterDrawBackground;
|
||||||
|
deprecated 'Use OnAfterCustomDrawBackground instead';
|
||||||
property OnAfterDrawBackWall: TChartAfterDrawEvent
|
property OnAfterDrawBackWall: TChartAfterDrawEvent
|
||||||
read FOnAfterDrawBackWall write SetOnAfterDrawBackWall;
|
read FOnAfterDrawBackWall write SetOnAfterDrawBackWall;
|
||||||
|
deprecated 'Use OnAfterCustomDrawBackWall instead';
|
||||||
property OnAfterPaint: TChartEvent read FOnAfterPaint write FOnAfterPaint;
|
property OnAfterPaint: TChartEvent read FOnAfterPaint write FOnAfterPaint;
|
||||||
|
property OnBeforeCustomDrawBackground: TChartBeforeCustomDrawEvent
|
||||||
|
read FOnBeforeCustomDrawBackground write SetOnBeforeCustomDrawBackground;
|
||||||
property OnBeforeDrawBackground: TChartBeforeDrawEvent
|
property OnBeforeDrawBackground: TChartBeforeDrawEvent
|
||||||
read FOnBeforeDrawBackground write SetOnBeforeDrawBackground;
|
read FOnBeforeDrawBackground write SetOnBeforeDrawBackground;
|
||||||
|
deprecated 'Use OnBeforeCustomDrawBackground instead';
|
||||||
|
property OnBeforeCustomDrawBackWall: TChartBeforeCustomDrawEvent
|
||||||
|
read FOnBeforeCustomDrawBackWall write SetOnBeforeCustomDrawBackwall;
|
||||||
property OnBeforeDrawBackWall: TChartBeforeDrawEvent
|
property OnBeforeDrawBackWall: TChartBeforeDrawEvent
|
||||||
read FOnBeforeDrawBackWall write SetOnBeforeDrawBackWall;
|
read FOnBeforeDrawBackWall write SetOnBeforeDrawBackWall;
|
||||||
|
deprecated 'Use OnBeforeCustomDrawBackWall instead';
|
||||||
property OnDrawLegend: TChartDrawLegendEvent
|
property OnDrawLegend: TChartDrawLegendEvent
|
||||||
read FOnDrawLegend write SetOnDrawLegend;
|
read FOnDrawLegend write SetOnDrawLegend;
|
||||||
property OnDrawReticule: TDrawReticuleEvent
|
property OnDrawReticule: TDrawReticuleEvent
|
||||||
read FOnDrawReticule write SetOnDrawReticule;
|
read FOnDrawReticule write SetOnDrawReticule;
|
||||||
|
deprecated 'Use DatapointCrosshairTool instead';
|
||||||
property OnExtentChanged: TChartEvent
|
property OnExtentChanged: TChartEvent
|
||||||
read FOnExtentChanged write FOnExtentChanged;
|
read FOnExtentChanged write FOnExtentChanged;
|
||||||
property OnExtentChanging: TChartEvent
|
property OnExtentChanging: TChartEvent
|
||||||
@ -577,11 +604,19 @@ var
|
|||||||
begin
|
begin
|
||||||
ADrawer.PrepareSimplePen(Color);
|
ADrawer.PrepareSimplePen(Color);
|
||||||
ADrawer.SetBrushParams(bsSolid, Color);
|
ADrawer.SetBrushParams(bsSolid, Color);
|
||||||
|
|
||||||
|
if Assigned(FOnBeforeCustomDrawBackground) then
|
||||||
|
OnBeforeCustomDrawBackground(Self, ADrawer, ARect, defaultDrawing)
|
||||||
|
else
|
||||||
if Supports(ADrawer, IChartTCanvasDrawer, ic) and Assigned(OnBeforeDrawBackground) then
|
if Supports(ADrawer, IChartTCanvasDrawer, ic) and Assigned(OnBeforeDrawBackground) then
|
||||||
OnBeforeDrawBackground(Self, ic.Canvas, ARect, defaultDrawing);
|
OnBeforeDrawBackground(Self, ic.Canvas, ARect, defaultDrawing);
|
||||||
|
|
||||||
if defaultDrawing then
|
if defaultDrawing then
|
||||||
ADrawer.FillRect(ARect.Left, ARect.Top, ARect.Right, ARect.Bottom);
|
ADrawer.FillRect(ARect.Left, ARect.Top, ARect.Right, ARect.Bottom);
|
||||||
// ADrawer.Rectangle(ARect);
|
// ADrawer.Rectangle(ARect);
|
||||||
|
|
||||||
|
if Assigned(OnAfterCustomDrawBackground) then
|
||||||
|
OnAfterCustomDrawBackground(Self, ADrawer, ARect);
|
||||||
if Supports(ADrawer, IChartTCanvasDrawer, ic) and Assigned(OnAfterDrawBackground) then
|
if Supports(ADrawer, IChartTCanvasDrawer, ic) and Assigned(OnAfterDrawBackground) then
|
||||||
OnAfterDrawBackground(Self, ic.Canvas, ARect);
|
OnAfterDrawBackground(Self, ic.Canvas, ARect);
|
||||||
end;
|
end;
|
||||||
@ -938,8 +973,12 @@ var
|
|||||||
ic: IChartTCanvasDrawer;
|
ic: IChartTCanvasDrawer;
|
||||||
scaled_depth: Integer;
|
scaled_depth: Integer;
|
||||||
begin
|
begin
|
||||||
|
if Assigned(OnBeforeCustomDrawBackWall) then
|
||||||
|
OnBeforeCustomDrawBackWall(self, ADrawer, FClipRect, defaultDrawing)
|
||||||
|
else
|
||||||
if Supports(ADrawer, IChartTCanvasDrawer, ic) and Assigned(OnBeforeDrawBackWall) then
|
if Supports(ADrawer, IChartTCanvasDrawer, ic) and Assigned(OnBeforeDrawBackWall) then
|
||||||
OnBeforeDrawBackWall(Self, ic.Canvas, FClipRect, defaultDrawing);
|
OnBeforeDrawBackWall(Self, ic.Canvas, FClipRect, defaultDrawing);
|
||||||
|
|
||||||
if defaultDrawing then
|
if defaultDrawing then
|
||||||
with ADrawer do begin
|
with ADrawer do begin
|
||||||
if FFrame.Visible then
|
if FFrame.Visible then
|
||||||
@ -950,6 +989,9 @@ begin
|
|||||||
with FClipRect do
|
with FClipRect do
|
||||||
Rectangle(Left, Top, Right + 1, Bottom + 1);
|
Rectangle(Left, Top, Right + 1, Bottom + 1);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
if Assigned(OnAfterCustomDrawBackWall) then
|
||||||
|
OnAfterCustomDrawBackwall(Self, Drawer, FClipRect);
|
||||||
if Supports(ADrawer, IChartTCanvasDrawer, ic) and Assigned(OnAfterDrawBackWall) then
|
if Supports(ADrawer, IChartTCanvasDrawer, ic) and Assigned(OnAfterDrawBackWall) then
|
||||||
OnAfterDrawBackWall(Self, ic.Canvas, FClipRect);
|
OnAfterDrawBackWall(Self, ic.Canvas, FClipRect);
|
||||||
|
|
||||||
@ -1658,9 +1700,23 @@ begin
|
|||||||
StyleChanged(Self);
|
StyleChanged(Self);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TChart.SetOnAfterCustomDrawBackground(AValue: TChartAfterCustomDrawEvent);
|
||||||
|
begin
|
||||||
|
if TMethod(FOnAfterCustomDrawBackground) = TMethod(AValue) then exit;
|
||||||
|
FOnAfterCustomDrawBackground := AValue;
|
||||||
|
StyleChanged(Self);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TChart.SetOnAfterCustomDrawBackWall(AValue: TChartAfterCustomDrawEvent);
|
||||||
|
begin
|
||||||
|
if TMethod(FOnAfterCustomDrawBackWall) = TMethod(AValue) then exit;
|
||||||
|
FOnAfterCustomDrawBackWall := AValue;
|
||||||
|
StyleChanged(Self);
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TChart.SetOnAfterDrawBackground(AValue: TChartAfterDrawEvent);
|
procedure TChart.SetOnAfterDrawBackground(AValue: TChartAfterDrawEvent);
|
||||||
begin
|
begin
|
||||||
if TMethod(FOnAfterDrawBackground) = TMEthod(AValue) then exit;
|
if TMethod(FOnAfterDrawBackground) = TMethod(AValue) then exit;
|
||||||
FOnAfterDrawBackground := AValue;
|
FOnAfterDrawBackground := AValue;
|
||||||
StyleChanged(Self);
|
StyleChanged(Self);
|
||||||
end;
|
end;
|
||||||
@ -1672,6 +1728,20 @@ begin
|
|||||||
StyleChanged(Self);
|
StyleChanged(Self);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TChart.SetOnBeforeCustomDrawBackground(AValue: TChartBeforeCustomDrawEvent);
|
||||||
|
begin
|
||||||
|
if TMethod(FOnBeforeCustomDrawBackground) = TMethod(AValue) then exit;
|
||||||
|
FOnBeforeCustomDrawBackground := AValue;
|
||||||
|
StyleChanged(Self);
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure TChart.SetOnBeforeCustomDrawBackWall(AValue: TChartBeforeCustomDrawEvent);
|
||||||
|
begin
|
||||||
|
if TMethod(FOnBeforeCustomDrawBackWall) = TMethod(AValue) then exit;
|
||||||
|
FOnBeforeCustomDrawBackWall := AValue;
|
||||||
|
StyleChanged(Self);
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TChart.SetOnBeforeDrawBackground(AValue: TChartBeforeDrawEvent);
|
procedure TChart.SetOnBeforeDrawBackground(AValue: TChartBeforeDrawEvent);
|
||||||
begin
|
begin
|
||||||
if TMethod(FOnBeforeDrawBackground) = TMethod(AValue) then exit;
|
if TMethod(FOnBeforeDrawBackground) = TMethod(AValue) then exit;
|
||||||
|
Loading…
Reference in New Issue
Block a user