![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Помогите с разработкой компонента! [D7, WinXP]
_ZeKa © (2005-06-22 20:13:00)Компонент представляет из себя следующее творение: существует класс TParentControl, он имеет коллекцию Sections. Элементы этой коллекции - SectionItem в конструкторе создают объект TChildControl, родителем для которого является TParentControl. В ChildControl я устанавливаю ControlStyle = ControlStyle +[csAcceptsControls], для того чтобы он мог принимать компоненты в design-time (как TPanel).
Конфуз в том, что когда в design-time я кидаю на ChildControl`ы компоненты все работает, но в run-time их нет, они просто не сохраняются в файле формы. Отсюда вопрос: Как сделать так чтобы они там сохранялись? По принципу действия компонент похож на TPageControl с вкладками. Это меня навело на мысль(может и ошибочную), что ChildControl`ы должны быть редактируемыми в design-time, но я не заню как это сделать.
P.s. Забыл сказать, что все классы порождены от TCustomControl и никаких наваротов не имеют.
Благодарен за любые предложения.
Юрий Зотов (2005-06-22 20:35:00) [1]> родителем для которого является TParentControl
А кто для него является владельцем? Должна быть форма. Иначе ChildControl и все, что на нем лежит, попасть в DFM не сможет.
Это первое. Второе - очень похоже, что в Ваших классах потребуется поиграться с замещением методов GetParentComponent, GetChildren, SetChildOrder и им подобных. Посмотрите для примера, как это сделано в PageControl и TabSheet (чтобы сразу понять, о чем идет речь, положите на форму PageControl, создайте на нем TabSheet, положите на него что-нибудь и затем просмотрите форму в виде текста - увидите, как хитро сохранился TabSheet и все, что на нем. Вам нужно получить то же самое).