Главная страница
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.026 c
7-67598
Seldon
2003-03-04 21:47
2003.04.21
Завершение работы


1-67355
Roman
2003-04-09 17:01
2003.04.21
SysTray ПОМОГИТЕ!!!


14-67484
wowik_cn
2003-04-02 12:35
2003.04.21
Как программно сменить LangDriver у Парадоксовой таблицы


14-67488
psyho
2003-04-02 14:17
2003.04.21
программка записи cd


14-67507
michael_b
2003-04-03 20:45
2003.04.21
Где взять Кнут 3 том