Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Form.show and Form.free 
:(
    Опции темы
JohnnY
Дата 16.3.2007, 23:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 20.8.2005
Где: Калининград

Репутация: нет
Всего: нет



Подскажите, как решить вопрос...

При нажатии на кнопку  в Form1 я хочу чтобы Form2 загружалась в память и показывалась,  а при нажатии в Form2 на кнопку Close, форма закрывалась и высвобождала память...

Функции типа: 
В form1: 
form2.create;
form2.show;

А в Form2:
Form2.close;
Form2.free;

Не помогают... Форма либо остаётся в памяти, либо вылазиет ошибка...

Просто у меня в проге порядка 10 форм, и я хочу чтобы она занимала в памяти поменьше места...

И вообще, как можно добится наименьшего значения занимаемого в памяти...

Спасибо...

PM MAIL WWW   Вверх
ama_kid
Дата 17.3.2007, 00:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


АСУТП-кодер
***


Профиль
Группа: Комодератор
Сообщений: 1460
Регистрация: 5.3.2007
Где: Москва

Репутация: 15
Всего: 95



при закрытии ненужной формы в её обработчике OnClose указывай Action:=caFree; тогда она будет выгружаться из памяти...


--------------------
самурай без меча подобен самураю с мечом, но только без меча 
PM MAIL   Вверх
Poseidon
Дата 17.3.2007, 00:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Delphi developer
****


Профиль
Группа: Комодератор
Сообщений: 5273
Регистрация: 4.2.2005
Где: Гомель, Беларусь

Репутация: 53
Всего: 133



Код
uses Unit2;
procedure TForm1.Button1Click(Sender: TObject);
begin
  Application.CreateForm(TForm2, Form2);
  Form2.Show;
end;


Код
procedure TForm2.Button1Click(Sender: TObject);
begin
Close;
Application.FreeNotification(Form2);
end;


Только не забудь удалить строчку "Application.CreateForm(TForm2, Form2);" из Project программы.


--------------------
Если хочешь, что бы что-то работало - используй написанное, 
если хочешь что-то понять - пиши сам...
PM MAIL ICQ   Вверх
VladBD
Дата 18.3.2007, 00:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 105
Регистрация: 19.11.2006

Репутация: 1
Всего: 5



Цитата
И вообще, как можно добится наименьшего значения занимаемого в памяти...

Для этого все остальные 10 форм храни в неавтосоздаваемом списке и создавай их в процессе работы программы динамически. Так точно меньше памяти ест.
Я при работе программы создаю модальные формы.
Например работаешь в основном окне и открываешь форму отчета... поработал там закрыл и она очистилась из памяти
Код

frmReport := TfrmReport.Create(Self);
  try
    frmReport.ShowModal;
  finally
    frmReport.Free;
  end;

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0516 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.