Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.031 c
1-1150550494
lux_dn
2006-06-17 17:21
2006.07.30
Утечка ПАМЯТИ & DLL


15-1151669678
MsGuns
2006-06-30 16:14
2006.07.30
Сожмем кулаки за Украину ?


15-1151599434
PSPF2003
2006-06-29 20:43
2006.07.30
Выход в инет


15-1151425083
Джо
2006-06-27 20:18
2006.07.30
Этот сайт в "облегченной" версии для моб. устройств


4-1145132365
Antonyan
2006-04-16 00:19
2006.07.30
Проблема с Async Professional




   Наверх