Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.07.30;
Скачать: CL | DM;

Вниз

FREE   Найти похожие ветки 

 
zdm   (2006-07-10 16:42) [0]

как корректно убить форму(не основную естесвенно),
action:=caFree я так понимаю не освобождает всех ресурсов,,,а надо-бы освободить


 
Dmitrij_K   (2006-07-10 16:46) [1]

Form2.Free;


 
Ega23 ©   (2006-07-10 16:55) [2]

Из метода данной формы?


 
Dmitrij_K   (2006-07-10 16:58) [3]

Если в OnClose сделать Action := caFree ресурсы освобождаются.
А с чего ты взял что не освобождается?


 
zdm   (2006-07-10 17:30) [4]

вобщем накопал инфы,,, action:=caFree, убивает процессы там и т.д. но держит в резерве память, пока её не займет другой процесс, а FORM.FREE на ONClose полное убийство с высвобождением памяти


 
StriderMan ©   (2006-07-10 17:46) [5]


> FORM.FREE на ONClose

вызов деструктора в обработчике TForm.OnClose? я правильно понял?
Это же в корне не верно!


 
tesseract ©   (2006-07-10 17:48) [6]

да нет  TForm.Free тоже память в куче отставит.

ДА и [5] учти.


 
Плохиш ©   (2006-07-10 18:28) [7]

Как написано в нелюбимой здесь справке, метод Release.


 
alexvan ©   (2006-07-10 19:23) [8]

onClose - Action:=caFree;
onDestroy - Form1:=nil;


 
Loginov Dmitry ©   (2006-07-10 19:23) [9]

> а надо-бы освободить


А зачем это, надо-бы?


 
zdm   (2006-07-11 09:47) [10]

да так, надо-бы, "память лишней не бывает", а почему в корне не верно form.free


 
tesseract ©   (2006-07-11 09:48) [11]

> да так, надо-бы, "память лишней не бывает", а почему в корне
> не верно form.free


Кучу сбросит при закрытии приложения. Имей в виду выделение/освобождение памяти медленный процесс, вот менеджер памяти и не хочет её просто так отдавать системе.


 
zdm   (2006-07-11 09:50) [12]

Ладно, ок, вообщем action:=caFree и не напрягайся, да?


 
evvcom ©   (2006-07-11 10:21) [13]

> [12] zdm   (11.07.06 09:50)

угу


 
StriderMan ©   (2006-07-11 13:06) [14]


> а почему в корне не верно form.free

это не верно в обработчике OnClose, т.к. после OnClose с объектом еще много чего делается, а вызов Free объект пристрелит насмерть. в итоге AccessViolation


 
zdm   (2006-07-11 13:26) [15]

я могу ошибаться конечно, или, не попал под стечение обстоятельств, но делая так:
сначала создаю форму ну например на нажатие кнопки меню.
procedure TForm_Osn.N8Click(Sender: TObject);
begin
       Application.CreateForm(TForm_New_Sc_RKC, Form_New_Sc_RKC);
   Form_New_Sc_RKC.ShowModal;  
end;

а на событие OnClose формы Form_New_Sc_RKC
procedure TForm_New_Sc_RKC.FormClose(Sender: TObject;
 var Action: TCloseAction);
begin
Form_New_Sc_RKC.Free;
end;

Все работает ,, ни каких ошибок.


 
StriderMan ©   (2006-07-11 14:33) [16]


> zdm

как-то замороченно больно

пиши лучше так:

procedure TForm_Osn.N8Click(Sender: TObject);
begin
 with TForm_New_Sc_RKC.Create(nil) do
 try
   ShowModal;
 finally
   Free;
 end;
end;



Страницы: 1 вся ветка

Текущий архив: 2006.07.30;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.029 c
3-1148457337
vanno
2006-05-24 11:55
2006.07.30
Проблема! Delphi+ADO+MySQL+ODBC Driver 3.51


2-1152622159
Neo Trinitron
2006-07-11 16:49
2006.07.30
dbf --> MSSQL


15-1152026484
Fl@sh
2006-07-04 19:21
2006.07.30
сайт


15-1151101423
Копир
2006-06-24 02:23
2006.07.30
До чего наука дошла, а?


2-1152625057
AlexanderMS
2006-07-11 17:37
2006.07.30
Добавить новый подпункт в пункт меню ActionMainMenuBar.