mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-10-24 20:51:44 +02:00
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:
parent
51ac6216a6
commit
c8432ee164
@ -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
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user