TMyPanel = class(TPanel)
public
procedure AfterConstruction; override;
end;
procedure TMyPanel.AfterConstruction;
begin
inherited AfterConstruction;
Caption := '';
end;
我想在构建过程中清除标题,但此代码无法正常工作。 它不会将标题设置为空字符串。 如果我将''(空格)分配给Caption,它将保留,但这不是一个合适的解决方案。
我正在使用Delphi 2006。
答案 0 :(得分:5)
试试这个:
uses
ExtCtrls, StrUtils;
type
TMyPanel = class(TPanel)
public
procedure Loaded; override;
end;
procedure TMyPanel.Loaded;
inherited;
Caption := EmptyStr;
end;
经过测试,似乎在XE2中正常工作。
修改:
在OP中显示的方法不起作用的原因是因为在之后调用<{em>>从DFM文件中分配了对象的属性值。
对Loaded
的重写调用发生在初始创建对象之后,但之前属性值已从表单的DFM中分配,这意味着您分配的任何属性值您的AfterConstruction
方法将立即替换为DFM中为该相同属性指定的任何值。
AfterConstruction
在施工订单的最后处发生,因此您分配的任何值都将是最终的。