Если я правильно понимаю значение слова Сеттер, то в самом скромном виде он выглядит как-то так:
Код:
type
TChartName = class(TPersistent)
private
FChartText:string;
FFontColor:TColor;
protected
Procedure SetFontColor(NewValue:TColor);
published
property ChartText:string read FChartText write FChartText;
property FontColor:TColor read FFontColor write SetFontColor default clGray;
end;
//.......
procedure TChartName.SetFontColor(NewValue:TColor);
begin
if not (FFontColor=NewValue) then
begin
Self.FFontColor:= NewValue;
// вызов перерисовки компонента
end;
end;
У меня не получается из процедур вложенного класса воздействовать на методы основного TGraphPanel.
В одном из стандартных компонентов Делфи была применена примерно такая конструкция, но мне она мне не помогла:
Код:
type
TChartName = class;
TGraphPanel = class(TGraphicControl)
private
//...
FChartName : TChartName;
protected
//...
procedure SetChartName(const Value:TChartName);
procedure Paint; override;
public
FWorkFrame:TRectAxis;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
//...
property ChartName : TChartName read FChartName write SetChartName;
end;
type
TChartName = class(TPersistent)
private
FChartText:string;
FFontColor:TColor;
protected
{ Procedure SetFontColor(NewValue:TColor);}
published
property ChartText:string read FChartText write FChartText;
property FontColor:TColor read FFontColor write SetFontColor default clGray;
//......
procedure TGraphPanel.SetChartName(const Value: TChartName);
begin
FChartName.FFontColor:=Value.FFontColor;
Self.Paint;
end;