Правильный способ сделать пользовательский компонент, содержащий другие компоненты - PullRequest
0 голосов
/ 24 октября 2018

Я хочу создать свой собственный простой компонент, который содержит другие компоненты.Это выглядит так:

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

Как добавить субкомпоненты, чтобы избежать этого странного поведения?

1 Ответ

0 голосов
/ 24 октября 2018

Это типичный случай для SetSubComponent :

Вызовите SetSubComponent, чтобы указать, является ли этот компонент подкомпонентом.Подкомпонент - это компонент, владельцем которого является компонент, отличный от формы или модуля данных, в котором он находится.Если такой компонент не вызывает SetSubComponent с IsSubComponent, установленным в True, его опубликованные свойства не будут сохранены в файл формы.

Для каждого из ваших подкомпонентов вызовите SetSubComponent(True) в своем конструкторе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...