TAChart: Add TChartStyle.UsePen and .UseBrush properties. Update demo.

git-svn-id: trunk@28915 -
This commit is contained in:
ask 2011-01-09 09:32:12 +00:00
parent bc31258827
commit c4099a7d6a
2 changed files with 30 additions and 6 deletions

View File

@ -468,11 +468,11 @@ object Form1: TForm1
Styles = <
item
Brush.Color = 16631498
Pen.Style = psDash
UsePen = False
end
item
Brush.Color = 12319483
Pen.Style = psDash
UsePen = False
end>
left = 352
top = 176

View File

@ -31,9 +31,13 @@ type
FBrush: TBrush;
FPen: TPen;
FRepeatCount: Cardinal;
FUseBrush: Boolean;
FUsePen: Boolean;
procedure SetBrush(const AValue: TBrush);
procedure SetPen(const AValue: TPen);
procedure SetRepeatCount(AValue: Cardinal);
procedure SetUseBrush(AValue: Boolean);
procedure SetUsePen(AValue: Boolean);
procedure StyleChanged(ASender: TObject);
protected
function GetDisplayName: string; override;
@ -41,13 +45,15 @@ type
constructor Create(ACollection: TCollection); override;
destructor Destroy; override;
public
procedure Assign(Source: TPersistent); override;
procedure Apply(ACanvas: TCanvas);
procedure Assign(Source: TPersistent); override;
published
property Brush: TBrush read FBrush write SetBrush;
property Pen: TPen read FPen write SetPen;
property RepeatCount: Cardinal
read FRepeatCount write SetRepeatCount default 1;
property UseBrush: Boolean read FUseBrush write SetUseBrush default true;
property UsePen: Boolean read FUsePen write SetUsePen default true;
end;
TChartStyles = class;
@ -59,8 +65,8 @@ type
FOwner: TChartStyles;
function GetStyle(AIndex: Integer): TChartStyle;
protected
function GetOwner: TPersistent; override;
procedure Changed;
function GetOwner: TPersistent; override;
public
constructor Create(AOwner: TChartStyles);
property Style[AIndex: Integer]: TChartStyle read GetStyle; default;
@ -96,8 +102,10 @@ end;
procedure TChartStyle.Apply(ACanvas: TCanvas);
begin
ACanvas.Brush := Brush;
ACanvas.Pen := Pen;
if UseBrush then
ACanvas.Brush := Brush;
if UsePen then
ACanvas.Pen := Pen;
end;
procedure TChartStyle.Assign(Source: TPersistent);
@ -118,6 +126,8 @@ begin
FPen := TPen.Create;
FPen.OnChange := @StyleChanged;
FRepeatCount := 1;
FUseBrush := true;
FUsePen := true;
end;
destructor TChartStyle.Destroy;
@ -151,6 +161,20 @@ begin
StyleChanged(Self);
end;
procedure TChartStyle.SetUseBrush(AValue: Boolean);
begin
if FUseBrush = AValue then exit;
FUseBrush := AValue;
StyleChanged(Self);
end;
procedure TChartStyle.SetUsePen(AValue: Boolean);
begin
if FUsePen = AValue then exit;
FUsePen := AValue;
StyleChanged(Self);
end;
procedure TChartStyle.StyleChanged(ASender: TObject);
begin
Unused(ASender);