Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 09.03.2011, 20:09
Аватар для TolAlik
TolAlik TolAlik вне форума
Прохожий
 
Регистрация: 02.10.2009
Сообщения: 41
Репутация: 10
По умолчанию Динамическое создание форм

Вечер добрый.
Возникла необходимость программно создавать формы. Нужно чтобы при выполнении определенного условия создавалась и отображалась несколько раз одна и та же копия формы.
Форма создана заранее и на ней находятся одна кнопка закрытия и пара label'ов. Так же форма отключена из авто создаваемых. При создании формы выполняется код, который отображает в label'ы инфу для пользователя.
Ниже код с помощью которого создаются формы
Код:
Form2:= TForm2.Create(Application);
Form2.Caption:= 'Новое сообщение';
Form2.Show;
Как я понимаю если при работе программы просто закрыть форму, то она не разрушается и продолжает занимать память. При попытке закрыть форму, вызов метода Destroy ни каких видимых результатов не приносит(((
Объясните, как правильно нужно создавать и разрушать такие формы?

Извиняюсь не в том разделе создал тему

Последний раз редактировалось TolAlik, 09.03.2011 в 22:10.
Ответить с цитированием
  #2  
Старый 09.03.2011, 20:23
Asinkrit Asinkrit вне форума
Местный
 
Регистрация: 29.10.2009
Сообщения: 446
Репутация: 271
По умолчанию

Во первых, зачем каждый раз создавать одну и туже форму? Легче, один раз создать и использовать ее до окончания программы.

Если хочешь что бы форма уничтожалась сама, то можно у той формы, в событии OnClose прописать следующее:
Код:
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caFree;
end;

Если метод Destroy не вызывает никаких последствий, то это хорошо, это говорит о том, что форма существовала, и была уничтожена.

А проверить сие деяние можно разными способами, к примеру обратиться к данной форме, если ее не существует, то получишь ошибку (к примеру, повторный вызов Destroy), или открыть диспетчер задач, включить колонки использования памяти, и смотреть на динамику ее изменения, до создания формы, после создания, и после уничтожения.
Ответить с цитированием
  #3  
Старый 10.08.2011, 21:06
PAULkan PAULkan вне форума
Прохожий
 
Регистрация: 10.08.2011
Сообщения: 1
Репутация: 10
По умолчанию

Может быть глупый вопрос Подскажите, а если данным способом создано несколько форм, с memo на них, к примеру, как мне обратиться к конкретному memo и поместить в него текст?
Ответить с цитированием
  #4  
Старый 10.08.2011, 21:13
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Создаешь через конструктор, указатели помещаешь в коллекцию, к примеру, в ObjectList.
Дальше думаем сами.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 20:24.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter