|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
24.03.2009, 00:01 | #1 |
Пользователь
Регистрация: 20.03.2009
Сообщений: 33
|
сохранение/загрузка вложенных компонент в dfm
Есть компонент сParentComponent (наследник TWinControl) который хранит ссылку на список вложеных компонентов (наследники TComponent). Метод GetChildren переопределен
Код:
Как оставить сохранение компонентов только у сParentComponent. Как потом при загрузке собрать эти вложенные компоненты обратно в список subcomponents (TList) у cParentControl. Owner-ом субкомпонетов является форма. |
24.03.2009, 00:16 | #2 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Тот кусок кода, который вы привели, никак не поможет пониманию сути вашего вопроса.
Покажите, как вы создаете наследника. |
24.03.2009, 20:08 | #3 | |
Пользователь
Регистрация: 20.03.2009
Сообщений: 33
|
Цитата:
у редактора компонента cParentComponent переопределен метод Edit, по вызову которого создается форма. На форме имеется кнопка, которая позволяет добавлять субкомпоненты. Код нажатия на кнопку такой: Код:
Последний раз редактировалось Oburec; 24.03.2009 в 20:10. |
|
25.03.2009, 21:58 | #4 |
Пользователь
Регистрация: 20.03.2009
Сообщений: 33
|
Выкладываю пример созданный alexBlack-ом (за что ему огромное спасибо). с незначительными доработками. В данном примере создается ParentComponent, на котором размещаются два контрола. Иерархия компонентов правильно отображается в IDE-ом structure и правильно сохраняется в форму.
Для активации примера необходимо проинсталировать компонент, кинуть на форму Tbutton и два раза по нему кликнуть Код:
Код:
Последний раз редактировалось Oburec; 25.03.2009 в 22:47. |
25.03.2009, 23:28 | #5 |
Пользователь
Регистрация: 20.03.2009
Сообщений: 33
|
Итак решение найдено. У TComponent есть два динамических метода, которые по умолчанию всегда возвращают одно и тоже. HasParent - возвращает false, GetParentComponent - возвращает nil.
Перекрывая эти методы, и вернув true в HasParent и вернув ссылку на ParentComponent в GetParentComponent все будет удачно сохраняться в dfm файл и будет правильно отображаться в structure окошке. Последний раз редактировалось Oburec; 25.03.2009 в 23:48. |
26.03.2009, 11:30 | #6 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
Про назначение кнопки "Правка" не догадываетесь?
Значит - ни читали правила раздела, значит - нарываетесь на штраф... |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Загрузка/сохранение рисунков | Marsik | Помощь студентам | 20 | 20.11.2008 18:09 |
Загрузка и сохранение в файл | rainbow | Общие вопросы Delphi | 16 | 27.09.2008 11:35 |
HRGN сохранение-загрузка? | Comer_Jus | Общие вопросы Delphi | 5 | 21.05.2008 20:12 |
Сохранение и загрузка информации | Slash | Общие вопросы Delphi | 9 | 04.02.2007 22:01 |