From 4f81e53b18e067b4e2d94ac3b234cf2e46a1110d Mon Sep 17 00:00:00 2001 From: wp Date: Fri, 25 Oct 2019 14:48:33 +0000 Subject: [PATCH] TAChart: New axis event OnGetMarkText to replace the old OnMarkToText (which does not pass the used axis in a parameter). Deprecate OnMarkToText. git-svn-id: trunk@62116 - --- components/tachart/tachartaxis.pas | 19 ++++++++++++++++++- components/tachart/tachartaxisutils.pas | 3 +++ 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/components/tachart/tachartaxis.pas b/components/tachart/tachartaxis.pas index d0ad974c6f..cb4b8f2659 100644 --- a/components/tachart/tachartaxis.pas +++ b/components/tachart/tachartaxis.pas @@ -109,6 +109,7 @@ type FMargin: TChartDistance; FMarginsForMarks: Boolean; FMinors: TChartMinorAxisList; + FOnGetMarkText: TChartGetAxisMarkTextEvent; FOnMarkToText: TChartAxisMarkToTextEvent; FPosition: Double; FPositionUnits: TChartUnits; @@ -130,6 +131,7 @@ type procedure SetMarginsForMarks(AValue: Boolean); procedure SetMarks(AValue: TChartAxisMarks); procedure SetMinors(AValue: TChartMinorAxisList); + procedure SetOnGetMarkText(AValue: TChartGetAxisMarkTextEvent); procedure SetOnMarkToText(AValue: TChartAxisMarkToTextEvent); procedure SetPosition(AValue: Double); procedure SetPositionUnits(AValue: TChartUnits); @@ -193,8 +195,10 @@ type read FTransformations write SetTransformations; property ZPosition: TChartDistance read FZPosition write SetZPosition default 0; published + property OnGetMarkText: TChartGetAxisMarkTextEvent + read FOnGetMarkText write SetOnGetMarkText; property OnMarkToText: TChartAxisMarkToTextEvent - read FOnMarkToText write SetOnMarkToText; + read FOnMarkToText write SetOnMarkToText; deprecated 'Use "OnGetMarkText'; end; TChartOnSourceVisitor = @@ -433,6 +437,7 @@ begin Self.FTransformations := Transformations; Self.FZPosition := ZPosition; Self.FMarginsForMarks := MarginsForMarks; + Self.FOnGetMarkText := OnGetMarkText; Self.FOnMarkToText := OnMarkToText; end; inherited Assign(ASource); @@ -704,6 +709,11 @@ begin FRotationCenter := Marks.RotationCenter; end; + if Assigned(FOnGetMarkText) then + for i := 0 to High(FMarkValues) do + FOnGetMarkText(self, FMarkValues[i].FText, FMarkValues[i].FValue); + + // the following event is deprecated and will be removed... if Assigned(FOnMarkToText) then for i := 0 to High(FMarkValues) do FOnMarkToText(FMarkValues[i].FText, FMarkValues[i].FValue); @@ -1015,6 +1025,13 @@ begin StyleChanged(Self); end; +procedure TChartAxis.SetOnGetMarkText(AValue: TChartGetAxisMarkTextEvent); +begin + if TMethod(FOnGetMarkText) = TMethod(AValue) then exit; + FOnGetMarkText := AValue; + StyleChanged(Self); +end; + procedure TChartAxis.SetOnMarkToText(AValue: TChartAxisMarkToTextEvent); begin if TMethod(FOnMarkToText) = TMethod(AValue) then exit; diff --git a/components/tachart/tachartaxisutils.pas b/components/tachart/tachartaxisutils.pas index 81088aeb97..0ea469a387 100644 --- a/components/tachart/tachartaxisutils.pas +++ b/components/tachart/tachartaxisutils.pas @@ -23,6 +23,7 @@ const type TChartAxisBrush = TClearBrush; + TChartBasicAxis = class; TChartAxisFramePen = class(TChartPen) published @@ -71,6 +72,8 @@ type TChartAxisMargins = array [TChartAxisAlignment] of Integer; TChartAxisMarkToTextEvent = procedure (var AText: String; AMark: Double) of object; + TChartGetAxisMarkTextEvent = + procedure (Sender: TObject; var AText: String; AMark: Double) of object; {$IFNDEF fpdoc} // Workaround for issue #18549. TBasicChartAxisMarks =