TMyPanel = class(TPanel)
public
procedure AfterConstruction; override;
end;
procedure TMyPanel.AfterConstruction;
begin
inherited AfterConstruction;
Caption := '';
end;
Run Code Online (Sandbox Code Playgroud)
我想在构造期间清除标题,但是这段代码不能像我期望的那样工作.它不会将标题设置为空字符串.如果我将''(空格)分配给Caption,它将保留,但这不是一个合适的解决方案.
我正在使用Delphi 2006.
试试这个:
uses
ExtCtrls, StrUtils;
type
TMyPanel = class(TPanel)
public
procedure Loaded; override;
end;
procedure TMyPanel.Loaded;
inherited;
Caption := EmptyStr;
end;
Run Code Online (Sandbox Code Playgroud)
经过测试,似乎在XE2中运行良好.
编辑:
这是因为在OP中显示的方法不是因为在从DFM文件中分配了对象的属性值之后Loaded调用的原因.
重写调用AfterConstruction发生在初始创建对象之后,但是在从Form的DFM分配属性值之前,这意味着您在AfterConstruction方法中分配的任何属性值将立即替换为为同一属性指定的任何值在DFM中.
Loaded发生在施工订单的最后,所以你指定的任何价值都将是最终的.
| 归档时间: |
|
| 查看次数: |
1177 次 |
| 最近记录: |