TAChart: New event OnAddStyleToLegend for TChartStyles to control showing levels of stacked series in legend. https://forum.lazarus.freepascal.org/index.php/topic,62596.msg473977.html#msg473977

This commit is contained in:
wp_xyz 2023-03-11 19:15:14 +01:00
parent 79fadc1fa5
commit afa64b7e9a
2 changed files with 18 additions and 5 deletions

View File

@ -1706,6 +1706,7 @@ var
i: Integer;
li: TLegendItemBrushPenRect;
s: TChartStyle;
addToLegend: Boolean;
begin
case Legend.Multiplicity of
lmSingle:
@ -1724,11 +1725,17 @@ begin
lmStyle:
if Styles <> nil then
for s in Styles.Styles do
AItems.Add(TLegendItemBrushPenRect.Create(
IfThen(s.UseBrush, s.Brush, ABrush) as TBrush,
IfThen(s.UsePen, s.Pen, APen) as TPen,
LegendTextStyle(s)
));
begin
addToLegend := true;
if Assigned(Styles.OnAddStyleToLegend) then
Styles.OnAddStyleToLegend(s, self, addToLegend);
if addToLegend then
AItems.Add(TLegendItemBrushPenRect.Create(
IfThen(s.UseBrush, s.Brush, ABrush) as TBrush,
IfThen(s.UsePen, s.Pen, APen) as TPen,
LegendTextStyle(s)
));
end;
end;
end;

View File

@ -84,10 +84,14 @@ type
{ TChartStyles }
TAddStyleToLegendEvent = procedure (AStyle: TChartStyle; ASeries: TObject;
var AddToLegend: Boolean) of object;
TChartStyles = class(TComponent)
private
FBroadcaster: TBroadcaster;
FStyles: TChartStyleList;
FOnAddStyleToLegend: TAddStyleToLegendEvent;
procedure SetStyles(AValue: TChartStyleList);
public
constructor Create(AOwner: TComponent); override;
@ -100,6 +104,8 @@ type
property Broadcaster: TBroadcaster read FBroadcaster;
published
property Styles: TChartStyleList read FStyles write SetStyles;
property OnAddStyleToLegend: TAddStyleToLegendEvent
read FOnAddStyleToLegend write FOnAddStyleToLegend;
end;
procedure Register;