mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-18 00:19:21 +02:00
TAChart: Add Legend.UserItemsCount property
git-svn-id: trunk@28571 -
This commit is contained in:
parent
2b62871247
commit
abd5ef4928
@ -34,7 +34,8 @@ type
|
|||||||
seMarginY: TSpinEdit;
|
seMarginY: TSpinEdit;
|
||||||
procedure cbUseSidebarChange(Sender: TObject);
|
procedure cbUseSidebarChange(Sender: TObject);
|
||||||
procedure Chart1FuncSeries1Calculate(const AX: Double; out AY: Double);
|
procedure Chart1FuncSeries1Calculate(const AX: Double; out AY: Double);
|
||||||
procedure Chart1FuncSeries1DrawLegend(ACanvas: TCanvas; const ARect: TRect);
|
procedure Chart1FuncSeries1DrawLegend(
|
||||||
|
ACanvas: TCanvas; AIndex: Integer; const ARect: TRect);
|
||||||
procedure FormCreate(Sender: TObject);
|
procedure FormCreate(Sender: TObject);
|
||||||
procedure rgAlignmentClick(Sender: TObject);
|
procedure rgAlignmentClick(Sender: TObject);
|
||||||
procedure seMarginXChange(Sender: TObject);
|
procedure seMarginXChange(Sender: TObject);
|
||||||
@ -63,7 +64,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TForm1.Chart1FuncSeries1DrawLegend(
|
procedure TForm1.Chart1FuncSeries1DrawLegend(
|
||||||
ACanvas: TCanvas; const ARect: TRect);
|
ACanvas: TCanvas; AIndex: Integer; const ARect: TRect);
|
||||||
var
|
var
|
||||||
x, y0, w: Integer;
|
x, y0, w: Integer;
|
||||||
begin
|
begin
|
||||||
|
@ -288,9 +288,12 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TCustomChartSeries.GetLegendItemsBasic(AItems: TChartLegendItems);
|
procedure TCustomChartSeries.GetLegendItemsBasic(AItems: TChartLegendItems);
|
||||||
|
var
|
||||||
|
i: Integer;
|
||||||
begin
|
begin
|
||||||
if Assigned(Legend.OnDraw) then
|
if Assigned(Legend.OnDraw) then
|
||||||
AItems.Add(TLegendItemUserDrawn.Create(Legend.OnDraw, Title))
|
for i := 0 to Legend.UserItemsCount - 1 do
|
||||||
|
AItems.Add(TLegendItemUserDrawn.Create(i, Legend.OnDraw, Title))
|
||||||
else
|
else
|
||||||
GetLegendItems(AItems);
|
GetLegendItems(AItems);
|
||||||
end;
|
end;
|
||||||
|
@ -42,15 +42,17 @@ type
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
TLegendItemDrawEvent =
|
TLegendItemDrawEvent =
|
||||||
procedure (ACanvas: TCanvas; const ARect: TRect) of object;
|
procedure (ACanvas: TCanvas; AIndex: Integer; const ARect: TRect) of object;
|
||||||
|
|
||||||
{ TLegendItemUserDrawn }
|
{ TLegendItemUserDrawn }
|
||||||
|
|
||||||
TLegendItemUserDrawn = class(TLegendItem)
|
TLegendItemUserDrawn = class(TLegendItem)
|
||||||
private
|
private
|
||||||
|
FIndex: Integer;
|
||||||
FOnDraw: TLegendItemDrawEvent;
|
FOnDraw: TLegendItemDrawEvent;
|
||||||
public
|
public
|
||||||
constructor Create(AOnDraw: TLegendItemDrawEvent; const AText: String);
|
constructor Create(
|
||||||
|
AIndex: Integer; AOnDraw: TLegendItemDrawEvent; const AText: String);
|
||||||
procedure Draw(ACanvas: TCanvas; const ARect: TRect); override;
|
procedure Draw(ACanvas: TCanvas; const ARect: TRect); override;
|
||||||
property OnDraw: TLegendItemDrawEvent read FOnDraw;
|
property OnDraw: TLegendItemDrawEvent read FOnDraw;
|
||||||
end;
|
end;
|
||||||
@ -166,8 +168,10 @@ type
|
|||||||
private
|
private
|
||||||
FMultiplicity: TLegendMultiplicity;
|
FMultiplicity: TLegendMultiplicity;
|
||||||
FOnDraw: TLegendItemDrawEvent;
|
FOnDraw: TLegendItemDrawEvent;
|
||||||
|
FUserItemsCount: Integer;
|
||||||
procedure SetMultiplicity(AValue: TLegendMultiplicity);
|
procedure SetMultiplicity(AValue: TLegendMultiplicity);
|
||||||
procedure SetOnDraw(AValue: TLegendItemDrawEvent);
|
procedure SetOnDraw(AValue: TLegendItemDrawEvent);
|
||||||
|
procedure SetUserItemsCount(AValue: Integer);
|
||||||
public
|
public
|
||||||
constructor Create(AOwner: TCustomChart);
|
constructor Create(AOwner: TCustomChart);
|
||||||
public
|
public
|
||||||
@ -176,6 +180,8 @@ type
|
|||||||
property Multiplicity: TLegendMultiplicity
|
property Multiplicity: TLegendMultiplicity
|
||||||
read FMultiplicity write SetMultiplicity default lmSingle;
|
read FMultiplicity write SetMultiplicity default lmSingle;
|
||||||
property OnDraw: TLegendItemDrawEvent read FOnDraw write SetOnDraw;
|
property OnDraw: TLegendItemDrawEvent read FOnDraw write SetOnDraw;
|
||||||
|
property UserItemsCount: Integer
|
||||||
|
read FUserItemsCount write SetUserItemsCount default 1;
|
||||||
property Visible default true;
|
property Visible default true;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -203,9 +209,10 @@ end;
|
|||||||
{ TLegendItemUserDrawn }
|
{ TLegendItemUserDrawn }
|
||||||
|
|
||||||
constructor TLegendItemUserDrawn.Create(
|
constructor TLegendItemUserDrawn.Create(
|
||||||
AOnDraw: TLegendItemDrawEvent; const AText: String);
|
AIndex: Integer; AOnDraw: TLegendItemDrawEvent; const AText: String);
|
||||||
begin
|
begin
|
||||||
inherited Create(AText);
|
inherited Create(AText);
|
||||||
|
FIndex := AIndex;
|
||||||
FOnDraw := AOnDraw;
|
FOnDraw := AOnDraw;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -213,7 +220,7 @@ procedure TLegendItemUserDrawn.Draw(ACanvas: TCanvas; const ARect: TRect);
|
|||||||
begin
|
begin
|
||||||
inherited Draw(ACanvas, ARect);
|
inherited Draw(ACanvas, ARect);
|
||||||
if Assigned(FOnDraw) then
|
if Assigned(FOnDraw) then
|
||||||
FOnDraw(ACanvas, ARect);
|
FOnDraw(ACanvas, FIndex, ARect);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TLegendItemLine }
|
{ TLegendItemLine }
|
||||||
@ -491,6 +498,7 @@ constructor TChartSeriesLegend.Create(AOwner: TCustomChart);
|
|||||||
begin
|
begin
|
||||||
inherited Create(AOwner);
|
inherited Create(AOwner);
|
||||||
FVisible := true;
|
FVisible := true;
|
||||||
|
FUserItemsCount := 1;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TChartSeriesLegend.SetMultiplicity(AValue: TLegendMultiplicity);
|
procedure TChartSeriesLegend.SetMultiplicity(AValue: TLegendMultiplicity);
|
||||||
@ -507,6 +515,13 @@ begin
|
|||||||
StyleChanged(Self);
|
StyleChanged(Self);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TChartSeriesLegend.SetUserItemsCount(AValue: Integer);
|
||||||
|
begin
|
||||||
|
if FUserItemsCount = AValue then exit;
|
||||||
|
FUserItemsCount := AValue;
|
||||||
|
StyleChanged(Self);
|
||||||
|
end;
|
||||||
|
|
||||||
procedure SkipObsoleteProperties;
|
procedure SkipObsoleteProperties;
|
||||||
begin
|
begin
|
||||||
RegisterPropertyEditor(
|
RegisterPropertyEditor(
|
||||||
|
Loading…
Reference in New Issue
Block a user