delphi - 施工期间如何在TPanel后代中设置标题?

标签 delphi vcl

TMyPanel = class(TPanel)
public
  procedure AfterConstruction; override;
end;

procedure TMyPanel.AfterConstruction;
begin
  inherited AfterConstruction;
  Caption := '';
end;


我想在构建过程中清除标题,但是此代码无法正常运行。
它不会将标题设置为空字符串。
如果我将''(空格)分配给Caption,它将保留,但这不是适当的解决方案。

我正在使用Delphi 2006。

最佳答案

试试这个:

uses
  ExtCtrls, StrUtils;

type
  TMyPanel = class(TPanel)
  public
    procedure Loaded; override;
  end;

procedure TMyPanel.Loaded;
  inherited;
  Caption := EmptyStr;
end;


经过测试,在XE2中似乎可以正常工作。

编辑:

这在OP中显示的方法不起作用的情况下起作用的原因是,在从DFM文件中分配了对象的属性值之后,调用了Loaded

AfterConstruction的重写调用发生在对象的初始创建之后,但在从窗体的DFM分配属性值之前,这意味着您在AfterConstruction方法中分配的任何属性值都将立即替换为任何值在DFM中为同一属性指定。

Loaded发生在构造顺序的最后,因此,无论您指定的值是最终值。

关于delphi - 施工期间如何在TPanel后代中设置标题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11013136/

相关文章:

Delphi:击键或 IDE 选项来填充类上的界面元素

Delphi XE2 VCL 样式、从 TLabel 删除样式或禁用类换肤

delphi - 自己处理 WM_NCPAINT 时强制重新绘制 TMainMenu

delphi - 如何使用Delphi标准确认对话框但带有复选框 "Don'不要再问我“?

delphi - Delphi保存到文本文件

c++ - VCL 显示不同的形式

delphi - 使用 Delphi 5 自动检查 TMenuItem

delphi - 如何停止分层图像动画中的闪烁

delphi - 某些 HTTP 请求上的奇怪 TCP 重置 (RST)

delphi - TOpenDialog - 压缩为文件