![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#4
|
|||
|
|||
![]() Если я правильно понимаю значение слова Сеттер, то в самом скромном виде он выглядит как-то так:
Код:
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; Последний раз редактировалось Motorolla, 29.06.2019 в 00:03. |