|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Динамическое создание форм
Вечер добрый.
Возникла необходимость программно создавать формы. Нужно чтобы при выполнении определенного условия создавалась и отображалась несколько раз одна и та же копия формы. Форма создана заранее и на ней находятся одна кнопка закрытия и пара label'ов. Так же форма отключена из авто создаваемых. При создании формы выполняется код, который отображает в label'ы инфу для пользователя. Ниже код с помощью которого создаются формы Код:
Form2:= TForm2.Create(Application); Form2.Caption:= 'Новое сообщение'; Form2.Show; Объясните, как правильно нужно создавать и разрушать такие формы? Извиняюсь не в том разделе создал тему Последний раз редактировалось TolAlik, 09.03.2011 в 22:10. |
#2
|
|||
|
|||
Во первых, зачем каждый раз создавать одну и туже форму? Легче, один раз создать и использовать ее до окончания программы.
Если хочешь что бы форма уничтожалась сама, то можно у той формы, в событии OnClose прописать следующее: Код:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin Action := caFree; end; Если метод Destroy не вызывает никаких последствий, то это хорошо, это говорит о том, что форма существовала, и была уничтожена. А проверить сие деяние можно разными способами, к примеру обратиться к данной форме, если ее не существует, то получишь ошибку (к примеру, повторный вызов Destroy), или открыть диспетчер задач, включить колонки использования памяти, и смотреть на динамику ее изменения, до создания формы, после создания, и после уничтожения. |
#3
|
|||
|
|||
Может быть глупый вопрос Подскажите, а если данным способом создано несколько форм, с memo на них, к примеру, как мне обратиться к конкретному memo и поместить в него текст?
|
#4
|
||||
|
||||
Создаешь через конструктор, указатели помещаешь в коллекцию, к примеру, в ObjectList.
Дальше думаем сами. — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |