Дублирование компонента со всеми его дочерними элементами
Суть:
Есть несколько различного содержания панелей, требуется динамически создать несколько дубликатов этих панелей и вывести их в виде ленты.
Пример:
Есть пустой контейнер ScrollBox, в него по мере заполнения данными проги, добавляется сверху вниз с прокруткой TPanel содержащие, или TEditBox, или TMemo, и т.п.
Но так как в моей задаче компонентов на TPanel много, то динамически создавать их очень напряжно, кроме того, таких панелей около 10 видов.
Вопрос:
Можно ли, как нибудь продублировать (клонировать) уже существующие экземпляры или посоветуйте, какой компонет обладает похожими свойствами.
Можно прогуляться по дереву компонентов. Можно использовать фрейм (от версии билдера). Можно вообще написать процедуры создающие необходимый набор.
Цитата: Phodopus
Можно прогуляться по дереву компонентов. Можно использовать фрейм (от версии билдера). Можно вообще написать процедуры создающие необходимый набор.
1. Ну неужели бы стал обращаться к форуму, чтобы ждать ответа, не перебрав палитру компонентов? Может я и пропустил конечно, поэтому и попросил помочь, а может кто знает сторонние универсальные для данной задачи компоненты.
2. А вот про фреймы забыл. Спасибо, это как бы не компонент и поэтому отмел его изначально.
3. Процедуры не практично, так как панели будут меняться и подгонять, видоизменять их программно слишком накладно по времени.
В целом один вариант решения найден. Еще раз спасибо.
Я имел в виду дерево компонентов а не палитру. Так и написал. Массив ->Components[]
Хотелось, что нибудь наподобе конструктора копий:
panel1 = new TPanel(maket);
где: maket - исходный экземпляр, уже оформленный на стадии проектирования;
panel1 = TPanel(Maket(sourcePanel))
где SourcePanel - указатель на исходную панель, которую копируешь. В функции maket делай необходимые действия для копирования. Можно замутиться с метаданными %-)
ну фантазировать, что можно сделать, бесконечное занятие... а вот из реальных и быстро исполнимых, пока только фрэймы, которые в принципе удовлетворили мои запросы, так что если нет путных советов по компонентам, советы в извращении с кодом мона не давать:)
да не, никакого извращения - все вполне осуществимо. просто определись с наиболее удобным для себя методом и делай. никаких проблем. =)