Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.21;
Скачать: 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 вся ветка

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

Наверх




Память: 0.47 MB
Время: 0.018 c
1-67297
Карелин Артем
2003-04-11 07:36
2003.04.21
Оптимальное хранение StringList в памяти.


4-67609
SunSay
2003-02-18 21:54
2003.04.21
Оконная процедура как метод класса...


14-67561
Style
2003-04-03 12:58
2003.04.21
Творчество...


1-67343
Bel
2003-04-08 16:57
2003.04.21
Что это значит? (про указатели)


1-67319
Lexer
2003-04-09 11:29
2003.04.21
Нужен компонент DBGrid + DBTreeView