TAChart: Make the TBasicChartSeries.OnGetPointerStyle event a procedure (instead of a function). Update line demo.

git-svn-id: trunk@52233 -
This commit is contained in:
wp 2016-04-22 10:55:20 +00:00
parent 51ac6216a6
commit c8432ee164
3 changed files with 15 additions and 13 deletions

View File

@ -14,9 +14,9 @@ object Form1: TForm1
Height = 494
Top = 0
Width = 691
ActivePage = tsCustomDrawPointer
ActivePage = tsGetPointerStyle
Align = alClient
TabIndex = 2
TabIndex = 3
TabOrder = 0
OnChange = PageControl1Change
object tsFast: TTabSheet

View File

@ -66,8 +66,8 @@ type
procedure cbSortedChange(Sender: TObject);
procedure edEveryNthChange(Sender: TObject);
procedure FormCreate(Sender: TObject);
function lsGetPointerStyleGetPointerStyle(ASender: TChartSeries;
AValueIndex: Integer): TSeriesPointerStyle;
procedure lsGetPointerStyleGetPointerStyle(ASender: TChartSeries;
AValueIndex: Integer; var AStyle: TSeriesPointerStyle);
procedure lsCustomDrawPointerCustomDrawPointer(ASender: TChartSeries;
ADrawer: IChartDrawer; AIndex: Integer; ACenter: TPoint);
procedure PageControl1Change(Sender: TObject);
@ -190,10 +190,10 @@ begin
end;
end;
function TForm1.lsGetPointerStyleGetPointerStyle(ASender: TChartSeries;
AValueIndex: Integer): TSeriesPointerStyle;
procedure TForm1.lsGetPointerStyleGetPointerStyle(ASender: TChartSeries;
AValueIndex: Integer; var AStyle: TSeriesPointerStyle);
begin
Result := TSeriesPointerStyle(AValueIndex mod (ord(High(TSeriespointerStyle))+1));
AStyle := TSeriesPointerStyle(AValueIndex mod (ord(High(TSeriespointerStyle))+1));
end;
procedure TForm1.lsCustomDrawPointerCustomDrawPointer(ASender: TChartSeries;

View File

@ -235,8 +235,8 @@ type
ASender: TChartSeries; ADrawer: IChartDrawer; AIndex: Integer;
ACenter: TPoint) of object;
TSeriesPointerStyleEvent = function (ASender: TChartSeries;
AValueIndex: Integer): TSeriesPointerStyle of object;
TSeriesPointerStyleEvent = procedure (ASender: TChartSeries;
AValueIndex: Integer; var AStyle: TSeriesPointerStyle) of object;
{ TBasicPointSeries }
@ -1105,7 +1105,7 @@ var
i: Integer;
p: TDoublePoint;
ai: TPoint;
ps: TSeriesPointerStyle;
ps, saved_ps: TSeriesPointerStyle;
begin
Assert(Pointer <> nil, 'Series pointer');
if not Pointer.Visible then exit;
@ -1116,15 +1116,17 @@ begin
if Assigned(FOnCustomDrawPointer) then
FOnCustomDrawPointer(Self, ADrawer, i, ai)
else begin
ps := Pointer.Style;
if Assigned(FOnGetPointerStyle) then begin
saved_ps := Pointer.Style;
ps := saved_ps;
FOnGetPointerStyle(self, i, ps);
Pointer.SetOwner(nil); // avoid recursion
Pointer.Style := FOnGetPointerStyle(self, i);
Pointer.Style := ps;
end;
Pointer.Draw(ADrawer, ai, Source[i]^.Color);
AfterDrawPointer(ADrawer, i, ai);
if Assigned(FOnGetPointerStyle) then begin
Pointer.Style := ps;
Pointer.Style := saved_ps;
Pointer.SetOwner(ParentChart);
end;
end;