![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Закрытие дочерней формы [D7]
dimaL © (2007-08-03 11:08:00)Возник такой вопрос: на дочерней форме находися кнопка с обработчиком:
Close;.
Иногда закрывается нормально, иногда с ошибкой: Abstract error или Access violation. В чем может быть причина?
Ping (2007-08-06 07:45:00) [1]И вообще, вызывать напрямую метод Free формы - от лукавого.
Для этого, как минимум, Release есть.
Loginov Dmitry (2007-08-06 07:34:00) [2]В OnClose ты вызовом Form1.Free; разрушаешь объект. Это все-равно, что насморк лечить средствами херакири.
Единственный правильный свособ уничтожить немодальную форму VCL сразу после закрытия - в OnClose задать Action := caFree;
dimaL (2007-08-06 06:01:00) [3]
> Германн ©
Не совсем понятно!
Германн (2007-08-06 03:34:00) [4]
> dimaL (06.08.07 03:06) [3]
>
> Еще в OnCLose находится код: Form1.Free;
>
Ну да. Нож в брюхо - самый верный способ покончить со своим врагом!
Но, имхо, для "самоубийства" стОит выбрать более мягкий вариант :)
dimaL (2007-08-06 03:06:00) [5]Еще в OnCLose находится код:
Form1.Free;
и в OnDestroyForm1:=nil;. Больше критических мест нет.
JanMihail (2007-08-03 11:16:00) [6]Причина не в Close, выложи код, посмотрим
Сергей М. (2007-08-03 11:09:00) [7]
> В чем может быть причина?
В чем угодно, но только не в вызове Close.