让我们举一个包含名为ColumnWidth
的属性的组件的例子,其默认值为50.在设计时,我将该值更改为100,然后编译该应用程序。如何获取组件属性的初始值?
现在,我想在我的组件内部实现一个Reset to default
(弹出式菜单)按钮,它将初始化ColumnWidth
为100,以防用户在同一时间更改它。
TMyComponent = class(TComponent)
private
FVirtualStringTree: TVirtualStringTree;
FColumnWidth: Integer;
FColumnWidthDef: Integer;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure ResetToDefault;
published
property ColumnWidth: Integer read FColumnWidth write SetColumnWidth default 50;
property VirtualStringTree: TVirtualStringTree read FVirtualStringTree write FVirtualStringTree;
end;
constructor TMyComponent.Create(AOwner: TComponent);
begin
inherited;
FColumnWidth:= 50;
end;
destructor TMyComponent.Destroy;
begin
inherited;
end;
procedure TMyComponent.SetColumnWidth(const Value: Integer);
begin
if FColumnWidth <> Value then FColumnWidth:= Value;
end;
procedure TMyComponent.ResetToDefault;
begin
ColumnWidth:= FColumnWidthDef;
end;
在组件方法下,如何存储初始值ColumnWidth
?
为什么不到处使用常量? –
几个星期前,你还没有回答同样的问题,你还想加入@RobKennedy的评论工作吗? –
对于之前的“类似”问题,我想到了同样的想法,但从我的错误。我认为我需要从设计时间开始,但实际上有必要在实时进行。现在我认为这个问题更加清楚。编程是一种爱好,而不是一份工作,所以互联网和Stackoverflow是我唯一的培训师。如果有时我会提出愚蠢的问题,谢谢你的理解。 – REALSOFO