Форум: "Начинающим";
Текущий архив: 2006.07.30;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.012 c