TMyPanel = class(TPanel)
public
procedure AfterConstruction; override;
end;
procedure TMyPanel.AfterConstruction;
begin
inherited AfterConstruction;
Caption := '';
end;我想在构造过程中清除标题,但此代码不能像我预期的那样工作。它不会将标题设置为空字符串。如果我将‘’(空格)赋值给标题,它将保留,但这不是一个正确的解决方案。
我使用的是Delphi 2006。
发布于 2012-06-13 18:50:05
试试这个:
uses
ExtCtrls, StrUtils;
type
TMyPanel = class(TPanel)
public
procedure Loaded; override;
end;
procedure TMyPanel.Loaded;
inherited;
Caption := EmptyStr;
end;已在XE2中测试并显示工作正常。
编辑
在OP中显示的方法不起作用的地方,这样做的原因是因为Loaded是在从DFM文件分配对象的属性值之后调用的。
对AfterConstruction的被覆盖调用发生在最初创建对象之后,但在从表单的DFM分配属性值之前,这意味着您在AfterConstruction方法中分配的任何属性值都将立即替换为在DFM中为该相同属性指定的任何值。
Loaded发生在构造顺序的最后,所以无论您在那里分配什么值,都将是最终的。
https://stackoverflow.com/questions/11013136
复制相似问题