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

时间:2012-06-13 10:39:49

标签: delphi vcl

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

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

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

我正在使用Delphi 2006。

1 个答案:

答案 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在施工订单的最后处发生,因此您分配的任何值都将是最终的。