mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-10-26 15:01:33 +01: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
|
Height = 494
|
||||||
Top = 0
|
Top = 0
|
||||||
Width = 691
|
Width = 691
|
||||||
ActivePage = tsCustomDrawPointer
|
ActivePage = tsGetPointerStyle
|
||||||
Align = alClient
|
Align = alClient
|
||||||
TabIndex = 2
|
TabIndex = 3
|
||||||
TabOrder = 0
|
TabOrder = 0
|
||||||
OnChange = PageControl1Change
|
OnChange = PageControl1Change
|
||||||
object tsFast: TTabSheet
|
object tsFast: TTabSheet
|
||||||
|
|||||||
@ -66,8 +66,8 @@ type
|
|||||||
procedure cbSortedChange(Sender: TObject);
|
procedure cbSortedChange(Sender: TObject);
|
||||||
procedure edEveryNthChange(Sender: TObject);
|
procedure edEveryNthChange(Sender: TObject);
|
||||||
procedure FormCreate(Sender: TObject);
|
procedure FormCreate(Sender: TObject);
|
||||||
function lsGetPointerStyleGetPointerStyle(ASender: TChartSeries;
|
procedure lsGetPointerStyleGetPointerStyle(ASender: TChartSeries;
|
||||||
AValueIndex: Integer): TSeriesPointerStyle;
|
AValueIndex: Integer; var AStyle: TSeriesPointerStyle);
|
||||||
procedure lsCustomDrawPointerCustomDrawPointer(ASender: TChartSeries;
|
procedure lsCustomDrawPointerCustomDrawPointer(ASender: TChartSeries;
|
||||||
ADrawer: IChartDrawer; AIndex: Integer; ACenter: TPoint);
|
ADrawer: IChartDrawer; AIndex: Integer; ACenter: TPoint);
|
||||||
procedure PageControl1Change(Sender: TObject);
|
procedure PageControl1Change(Sender: TObject);
|
||||||
@ -190,10 +190,10 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TForm1.lsGetPointerStyleGetPointerStyle(ASender: TChartSeries;
|
procedure TForm1.lsGetPointerStyleGetPointerStyle(ASender: TChartSeries;
|
||||||
AValueIndex: Integer): TSeriesPointerStyle;
|
AValueIndex: Integer; var AStyle: TSeriesPointerStyle);
|
||||||
begin
|
begin
|
||||||
Result := TSeriesPointerStyle(AValueIndex mod (ord(High(TSeriespointerStyle))+1));
|
AStyle := TSeriesPointerStyle(AValueIndex mod (ord(High(TSeriespointerStyle))+1));
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TForm1.lsCustomDrawPointerCustomDrawPointer(ASender: TChartSeries;
|
procedure TForm1.lsCustomDrawPointerCustomDrawPointer(ASender: TChartSeries;
|
||||||
|
|||||||
@ -235,8 +235,8 @@ type
|
|||||||
ASender: TChartSeries; ADrawer: IChartDrawer; AIndex: Integer;
|
ASender: TChartSeries; ADrawer: IChartDrawer; AIndex: Integer;
|
||||||
ACenter: TPoint) of object;
|
ACenter: TPoint) of object;
|
||||||
|
|
||||||
TSeriesPointerStyleEvent = function (ASender: TChartSeries;
|
TSeriesPointerStyleEvent = procedure (ASender: TChartSeries;
|
||||||
AValueIndex: Integer): TSeriesPointerStyle of object;
|
AValueIndex: Integer; var AStyle: TSeriesPointerStyle) of object;
|
||||||
|
|
||||||
{ TBasicPointSeries }
|
{ TBasicPointSeries }
|
||||||
|
|
||||||
@ -1105,7 +1105,7 @@ var
|
|||||||
i: Integer;
|
i: Integer;
|
||||||
p: TDoublePoint;
|
p: TDoublePoint;
|
||||||
ai: TPoint;
|
ai: TPoint;
|
||||||
ps: TSeriesPointerStyle;
|
ps, saved_ps: TSeriesPointerStyle;
|
||||||
begin
|
begin
|
||||||
Assert(Pointer <> nil, 'Series pointer');
|
Assert(Pointer <> nil, 'Series pointer');
|
||||||
if not Pointer.Visible then exit;
|
if not Pointer.Visible then exit;
|
||||||
@ -1116,15 +1116,17 @@ begin
|
|||||||
if Assigned(FOnCustomDrawPointer) then
|
if Assigned(FOnCustomDrawPointer) then
|
||||||
FOnCustomDrawPointer(Self, ADrawer, i, ai)
|
FOnCustomDrawPointer(Self, ADrawer, i, ai)
|
||||||
else begin
|
else begin
|
||||||
ps := Pointer.Style;
|
|
||||||
if Assigned(FOnGetPointerStyle) then begin
|
if Assigned(FOnGetPointerStyle) then begin
|
||||||
|
saved_ps := Pointer.Style;
|
||||||
|
ps := saved_ps;
|
||||||
|
FOnGetPointerStyle(self, i, ps);
|
||||||
Pointer.SetOwner(nil); // avoid recursion
|
Pointer.SetOwner(nil); // avoid recursion
|
||||||
Pointer.Style := FOnGetPointerStyle(self, i);
|
Pointer.Style := ps;
|
||||||
end;
|
end;
|
||||||
Pointer.Draw(ADrawer, ai, Source[i]^.Color);
|
Pointer.Draw(ADrawer, ai, Source[i]^.Color);
|
||||||
AfterDrawPointer(ADrawer, i, ai);
|
AfterDrawPointer(ADrawer, i, ai);
|
||||||
if Assigned(FOnGetPointerStyle) then begin
|
if Assigned(FOnGetPointerStyle) then begin
|
||||||
Pointer.Style := ps;
|
Pointer.Style := saved_ps;
|
||||||
Pointer.SetOwner(ParentChart);
|
Pointer.SetOwner(ParentChart);
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user