Вниз
Скачать: CL | DM;

Как правильно удалить форму, созданую другой формой ?   Найти похожие ветки 

← →
vi7777 ©   (2003-04-10 22:08) [0]

С главной формы создаем много форм по очереди.
Т.е. создаем, в созданной форме выполняется продура, закрываем, потом опять.........
with TAutoForm.Create(Application) do
begin
Caption := "New";
end;

А в созданной форме на событие onClose стоит
Form := nil;
Form.Free;

Вроде бы все работает нормально, но сильно жрется память, после 400 - 500 таких манипуляций съедается 50 - 60 Мб памяти. Как сделать чтобы память освобождалась при закрытии каждой созданной формы ?
И главная и создаваемые формы - normal.


← →
Юрий Зотов ©   (2003-04-10 23:08) [1]

> А в созданной форме на событие onClose стоит
> Form := nil;
> Form.Free;

Это почти то же самое, что написать Nil.Free. Метод Free проверяет ссылку, видит, что она NIL и тихо завершается - без всяких Exception"ов, но и ничего не освоюождая. Вот отсюда и идут Ваши утечки памяти.

Выбросьте переменную Form совсем (дабы не было соблазна использовать глобальные ссылки), а в TAutoForm.OnClose напишите
Action := caFree;

И все.


← →
vi7777 ©   (2003-04-11 00:48) [2]

Болшое спасибо за совет )
Так работает, память освобождается ) Но в таком случае возникает другая проблема - более сложная, на мой взгляд ! Сама программа представляет из себя сабмитер. Т.е. есть главная форма и на ней создаются формы(в данном случае автосабмит).
На форме TWebBrowser. При создании формы в WB открывается страничка, после загрузки заполняются поля, нажимается кнопка Submit, затем получаем ответ, сохраняем в файл результат сабмита и закрываем форму, т.е. уничтожаем. Затем создается новая и т.д.
Так вот если сразу после оздания формы ее закрыть или оборвется соединение с интернетом, то будут вылетать окна эксплорера с урлом сабмит странички пока не закроешь саму программу или пока комп не повиснет ) Что это может быть подскажите, плиииз )
и что интересно, если nil, то не вылетают окна, а если caFree, то вылетают !



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

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



Память: 0.45 MB
Время: 0.014 c
1-67345
DeMoN-777
2003-04-09 16:42
2003.04.21
Есть ли стандарная ф-ия


14-67474
Феликс
2003-04-03 02:54
2003.04.21
Жалко, конечно, но похоже Ираку кирдык....


14-67493
Cobalt
2003-04-03 14:37
2003.04.21
Отношения к людям


3-67145
Builder
2003-03-29 17:44
2003.04.21
ADO, Access 97 и точность в Delphi


4-67635
aga
2003-02-21 19:29
2003.04.21
Explore.exe




   Наверх