![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Здравствуйте.
Требуется динамическое создание полей для формы ввода. Вся форма однотипная, но сохраняемых данных много. К чему я клоню. Есть GroupBox с формой внутри: ![]() На форме это должно выглядеть так (сделал в paint): ![]() Собственно, вопрос вот в чем. Неужели каждый из компонентов в GroupBox нужно прописывать отдельно кодом, указывая выравнивание, шрифты и координаты? Или может есть какой-то метод, который "по клику" позволит скопировать группу компонентов и поставить в нужные координаты в нужного родителя? Подумал, что может Assign сработает: Код:
Цитата:
Подскажите, как лучше сделать? |
#2
|
|||
|
|||
![]() Да, просто сделать Assign не получится. Для начала, даже если бы это сработало бы, то скопировались бы свойства только самого GroupBox, а компоненты в нем все равно бы не создались. Т.е. придется писать код самому. Как вариант - сделать фрейм и создавать нужное кол-во таких фреймов.
Второй вариант - написать код для клонирования. В твоем случае код будет выглядеть так: Код:
Написал код только для копирования основных свойств. Если надо, то добавишь копирование нужных, в т.ч. и назначения событий (для этого события придется переписать так, что бы они находили соотв. копоненты сами, а не адресовались напрямую, т.к. при клонировании создаются соответствующие новые контролы). Ну и когда будешь собирать данные с контролов, то тоже придется идти через Components[i]. |
#3
|
|||
|
|||
![]() Цитата:
То есть, в любом случае придётся указывать свойства каждого элемента для клонирования? Быстрых методов дублирования компонентов на форме нет?... |
#4
|
|||
|
|||
![]() В ран-тайм - нет. Только через фреймы.
|