Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Закрытие дочерней формы [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;
и в OnDestroy Form1:=nil;. Больше критических мест нет.


JanMihail   (2007-08-03 11:16:00) [6]

Причина не в Close, выложи код, посмотрим


Сергей М.   (2007-08-03 11:09:00) [7]


> В чем может быть причина?


В чем угодно, но только не в вызове Close.


Наверх

Титульная страница Поиск, карта сайта Написать письмо