制作包含其他组件的自定义组件的正确方法

3
我希望能够创建自己的简单组件并包含其他组件。它看起来像这样:

TTag = class(TLayout)
private
    _line: TLine;
    _label: TLabel;
    _background: TRoundRect;
    _button: TLabel;
public
    constructor Create(AOwner: TComponent); override;
end;

当我将此组件放置在表单上时,一切都正常,我的表单结构如下图所示: enter image description here 但是,在 Delphi IDE 重新打开后,它看起来像这样:enter image description here 如何添加子组件以避免这种奇怪的行为?

2
只需将所有子组件的 Stored 属性设置为 False 即可。 - Hans
1个回答

8
这是一个典型案例,使用SetSubComponent函数:
调用SetSubComponent函数来指示此组件是否为子组件。子组件是其Owner为表单或数据模块以外的组件。除非该组件使用IsSubComponent设置为True调用SetSubComponent函数,否则其发布属性将不保存到表单文件中。
对于每个子组件,在构造函数中调用 SetSubComponent(True)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接