首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在构造过程中设置TPanel descendant中的标题?

如何在构造过程中设置TPanel descendant中的标题?
EN

Stack Overflow用户
提问于 2012-06-13 18:39:49
回答 1查看 1.3K关注 0票数 1
代码语言:javascript
复制
TMyPanel = class(TPanel)
public
  procedure AfterConstruction; override;
end;

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

我想在构造过程中清除标题,但此代码不能像我预期的那样工作。它不会将标题设置为空字符串。如果我将‘’(空格)赋值给标题,它将保留,但这不是一个正确的解决方案。

我使用的是Delphi 2006。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-13 18:50:05

试试这个:

代码语言:javascript
复制
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发生在构造顺序的最后,所以无论您在那里分配什么值,都将是最终的。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11013136

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档