Главная страница
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.015 c
14-67481
SergeN
2003-04-03 11:14
2003.04.21
Компоненты, будь я не ладен!


1-67389
rol
2003-04-10 11:53
2003.04.21
Компонент RichEdit как родитель


7-67591
alfim
2003-03-04 21:14
2003.04.21
Заглушка для GINA. Блокировка ctrl+alt+del в WinXP,Win2k


14-67473
Тих
2003-04-03 00:23
2003.04.21
Oracle унд MS SQL


3-67086
Будущий мастер
2003-04-01 19:13
2003.04.21
Проблемы с установкой Oracle 8 в Windows XP