![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Открыть новую форму, полностью переписав её [D7, WinXP]
Kuzmi4 © (2009-11-28 10:19:00)Подскажите, как можно реализовать открытие Form2, но не методом Form2.Show, а чтобы форма как бы по-новому пересоздавалась. Т.е. на первой форме я нажимаю кнопку и открывает Form2 со всеми размещенными на ней компонентами (не пустая, заметьте). Потом я там что-то поделал, нажимаю на ней кнопку закрытия и она уничтожается. Затем с первой формы могу вызвать её опять по-новому. Как это сделать?
Спасибо.
0x00FF00 (2009-11-29 11:03:00) [1]
> а чтобы форма как бы по-новому пересоздавалась
> размещенными на ней компонентами (не пустая, заметьте)
> вызвать её опять по-новому
— сбило с панталыку...
Как обычно, чукча не читатель =)
В следующий раз таки перечитаю прежде чем отвечать.
Германн (2009-11-29 01:31:00) [2]
>
> > 0x00FF00 (28.11.09 12:27) [2]
>
> Это шутка?
>
Скорее попытка предложить решение задачи Z. :)
Юрий Зотов (2009-11-29 01:19:00) [3]> я там что-то поделал, нажимаю на ней кнопку закрытия и она
> уничтожается.
OnClose: Action := caFree
> Затем с первой формы могу вызвать её опять по-новому.
> Как это сделать?
TForm2.Create(...).Show;
> 0x00FF00 (28.11.09 12:27) [2]
Это шутка?
0x00FF00 (2009-11-28 12:27:00) [4]Скажем, заранее, ещё на этапе конструирования, создать на форме ВСЕ компоненты, которые могут ей понадобиться, и сделать их скрытыми. Потом организовать в Form2 массив из ссылок на эти компоненты. А затем перекрыть обработчик создания формы, так чтобы вызывающий передавал в него набор битовых масок (обычных чисел), где М-тый бит будет означать показ/скрытие того компонента, ссылка на который содержится в М-том элементе массива.
Ухарь (2009-11-28 12:19:00) [5]Создание:
Form2:=TForm2.Create(Self);
уничтожение:
Form2.Free;