Delphi World - Запись о втором создаваемом компоненте только в dfm-файле
Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Запись о втором создаваемом компоненте только в dfm-файле

Автор: Зайцев О.В.

У меня такая проблема: я пишу компонент, который внутри себя создаёт другой компонент. Конструктор первого компонента выглядит примерно так:

constructor TFirstComp.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  SecondComp := TSecondComp.Create(Owner)
end;

Проблема заключается в том, что при помещении первого компонента на форму в dfm-файл записывается информация и о втором компоненте тоже. А в pas-файл - только о первом. Это приводит к конфликтам. Для меня принципиально, чтобы хозяин у второго компонента был тот же, что и у первого. Как не дать Delphi поместить запись о TSecondComp в dfm-файл?

Попробуйте сделать так:

constructor TFirstComp.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  SecondComp := TSecondComp.Create(SELF);
end;

Т.е. дочернему компоненту в качастве владельца передавайте его непосредственного хозяина.

Проект Delphi World © Выпуск 2002 - 2017
Автор проекта: Эксклюзивные курсы программирования