mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-19 11:59:13 +02:00
TAChart: Add Legend.SymbolFrame property
git-svn-id: trunk@31342 -
This commit is contained in:
parent
0bbf6f4c42
commit
6cc9d3da78
@ -198,7 +198,7 @@ object Form1: TForm1
|
|||||||
end
|
end
|
||||||
object cbSeries: TComboBox
|
object cbSeries: TComboBox
|
||||||
Left = 102
|
Left = 102
|
||||||
Height = 19
|
Height = 22
|
||||||
Top = 60
|
Top = 60
|
||||||
Width = 148
|
Width = 148
|
||||||
ItemHeight = 16
|
ItemHeight = 16
|
||||||
|
@ -71,7 +71,7 @@ begin
|
|||||||
id := TCanvasDrawer.Create(cbSeries.Canvas);
|
id := TCanvasDrawer.Create(cbSeries.Canvas);
|
||||||
r := Bounds(
|
r := Bounds(
|
||||||
ARect.Left, ARect.Top, Chart1.Legend.SymbolWidth, cbSeries.ItemHeight);
|
ARect.Left, ARect.Top, Chart1.Legend.SymbolWidth, cbSeries.ItemHeight);
|
||||||
id.Pen := Chart1.Legend.Frame;
|
id.Pen := Chart1.Legend.SymbolFrame;
|
||||||
(FItems[Index] as TLegendItem).Draw(id, r);
|
(FItems[Index] as TLegendItem).Draw(id, r);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -120,6 +120,7 @@ type
|
|||||||
FMarginX: TChartDistance;
|
FMarginX: TChartDistance;
|
||||||
FMarginY: TChartDistance;
|
FMarginY: TChartDistance;
|
||||||
FSpacing: TChartDistance;
|
FSpacing: TChartDistance;
|
||||||
|
FSymbolFrame: TChartPen;
|
||||||
FSymbolWidth: TChartDistance;
|
FSymbolWidth: TChartDistance;
|
||||||
FUseSidebar: Boolean;
|
FUseSidebar: Boolean;
|
||||||
|
|
||||||
@ -131,6 +132,7 @@ type
|
|||||||
procedure SetMarginX(AValue: TChartDistance);
|
procedure SetMarginX(AValue: TChartDistance);
|
||||||
procedure SetMarginY(AValue: TChartDistance);
|
procedure SetMarginY(AValue: TChartDistance);
|
||||||
procedure SetSpacing(AValue: TChartDistance);
|
procedure SetSpacing(AValue: TChartDistance);
|
||||||
|
procedure SetSymbolFrame(AValue: TChartPen);
|
||||||
procedure SetSymbolWidth(AValue: TChartDistance);
|
procedure SetSymbolWidth(AValue: TChartDistance);
|
||||||
procedure SetUseSidebar(AValue: Boolean);
|
procedure SetUseSidebar(AValue: Boolean);
|
||||||
public
|
public
|
||||||
@ -141,10 +143,10 @@ type
|
|||||||
procedure Assign(Source: TPersistent); override;
|
procedure Assign(Source: TPersistent); override;
|
||||||
procedure Draw(
|
procedure Draw(
|
||||||
ADrawer: IChartDrawer; AItems: TObjectList; const ABounds: TRect);
|
ADrawer: IChartDrawer; AItems: TObjectList; const ABounds: TRect);
|
||||||
|
function MeasureItem(ADrawer: IChartDrawer; AItems: TObjectList): TPoint;
|
||||||
function Prepare(
|
function Prepare(
|
||||||
ADrawer: IChartDrawer; AItems: TObjectList; var AClipRect: TRect): TRect;
|
ADrawer: IChartDrawer; AItems: TObjectList; var AClipRect: TRect): TRect;
|
||||||
// Not includes the margins around item.
|
// Not includes the margins around item.
|
||||||
function MeasureItem(ADrawer: IChartDrawer; AItems: TObjectList): TPoint;
|
|
||||||
published
|
published
|
||||||
property Alignment: TLegendAlignment
|
property Alignment: TLegendAlignment
|
||||||
read FAlignment write SetAlignment default laTopRight;
|
read FAlignment write SetAlignment default laTopRight;
|
||||||
@ -160,6 +162,7 @@ type
|
|||||||
read FMarginY write SetMarginY default DEF_LEGEND_MARGIN;
|
read FMarginY write SetMarginY default DEF_LEGEND_MARGIN;
|
||||||
property Spacing: TChartDistance
|
property Spacing: TChartDistance
|
||||||
read FSpacing write SetSpacing default DEF_LEGEND_SPACING;
|
read FSpacing write SetSpacing default DEF_LEGEND_SPACING;
|
||||||
|
property SymbolFrame: TChartPen read FSymbolFrame write SetSymbolFrame;
|
||||||
property SymbolWidth: TChartDistance
|
property SymbolWidth: TChartDistance
|
||||||
read FSymbolWidth write SetSymbolWidth default DEF_LEGEND_SYMBOL_WIDTH;
|
read FSymbolWidth write SetSymbolWidth default DEF_LEGEND_SYMBOL_WIDTH;
|
||||||
property UseSidebar: Boolean read FUseSidebar write SetUseSidebar default true;
|
property UseSidebar: Boolean read FUseSidebar write SetUseSidebar default true;
|
||||||
@ -338,6 +341,7 @@ begin
|
|||||||
InitHelper(FBackgroundBrush, TChartLegendBrush);
|
InitHelper(FBackgroundBrush, TChartLegendBrush);
|
||||||
InitHelper(FFont, TFont);
|
InitHelper(FFont, TFont);
|
||||||
InitHelper(FFrame, TChartPen);
|
InitHelper(FFrame, TChartPen);
|
||||||
|
InitHelper(FSymbolFrame, TChartPen);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
destructor TChartLegend.Destroy;
|
destructor TChartLegend.Destroy;
|
||||||
@ -345,6 +349,7 @@ begin
|
|||||||
FreeAndNil(FBackgroundBrush);
|
FreeAndNil(FBackgroundBrush);
|
||||||
FreeAndNil(FFont);
|
FreeAndNil(FFont);
|
||||||
FreeAndNil(FFrame);
|
FreeAndNil(FFrame);
|
||||||
|
FreeAndNil(FSymbolFrame);
|
||||||
|
|
||||||
inherited;
|
inherited;
|
||||||
end;
|
end;
|
||||||
@ -376,7 +381,10 @@ begin
|
|||||||
for i := 0 to AItems.Count - 1 do begin
|
for i := 0 to AItems.Count - 1 do begin
|
||||||
ADrawer.Font := Font;
|
ADrawer.Font := Font;
|
||||||
ADrawer.Brush := BackgroundBrush;
|
ADrawer.Brush := BackgroundBrush;
|
||||||
ADrawer.Pen := Frame;
|
if SymbolFrame.Visible then
|
||||||
|
ADrawer.Pen := SymbolFrame
|
||||||
|
else
|
||||||
|
ADrawer.SetPenParams(psClear, clTAColor);
|
||||||
(AItems[i] as TLegendItem).Draw(ADrawer, r);
|
(AItems[i] as TLegendItem).Draw(ADrawer, r);
|
||||||
OffsetRect(r, 0, itemHeight + Spacing);
|
OffsetRect(r, 0, itemHeight + Spacing);
|
||||||
end;
|
end;
|
||||||
@ -503,6 +511,13 @@ begin
|
|||||||
StyleChanged(Self);
|
StyleChanged(Self);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure TChartLegend.SetSymbolFrame(AValue: TChartPen);
|
||||||
|
begin
|
||||||
|
if FSymbolFrame = AValue then exit;
|
||||||
|
FSymbolFrame := AValue;
|
||||||
|
StyleChanged(Self);
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TChartLegend.SetSymbolWidth(AValue: TChartDistance);
|
procedure TChartLegend.SetSymbolWidth(AValue: TChartDistance);
|
||||||
begin
|
begin
|
||||||
if FSymbolWidth = AValue then exit;
|
if FSymbolWidth = AValue then exit;
|
||||||
|
Loading…
Reference in New Issue
Block a user