![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Выполнение процедуры после Form.Close
AntonT © (2008-05-11 20:07:00)У некоторых программистов есть поговорка: "Работает - значит правильно". Но я рисковать не хочу, чтобы потом увитеть ошибку на какой-нибудь рабочей станции.
Ситуация следующая: при нажатии на кнопку сначала выполняется Form2.Close, а затем procedure xxx. Всё работает,... Но это не поддаётся здравому смыслу - как может выполнить процедуру уже закрытая форма?
Германн (2008-05-12 01:44:00) [1]
> SergeyIT (12.05.08 00:28) [5]
>
> А разве не Release?
>
Нет. Если только команда на уничтожение не даётся из одного из обработчиков самой формы или её компонентов.
> DrPass © (12.05.08 00:34) [6]
>
>
Если верить справке, то в очередь "кидается" CM_RELEASE.
DrPass (2008-05-12 00:34:00) [2]
> SergeyIT (12.05.08 00:28) [5]
> А разве не Release?
Нет. Release просто кидает форме в очередь сообщение WM_CLOSE.
SergeyIT (2008-05-12 00:28:00) [3]А разве не Release?
Anatoly Podgoretsky (2008-05-11 21:14:00) [4]> AntonT (11.05.2008 20:34:02) [2]
Free
Leonid Troyanovsky (2008-05-11 20:58:00) [5]
> AntonT (11.05.08 20:34) [2]
> как тогда "совсем" закрыть форму?
Как и для всех объектов - Free.
Для немодальных же форм читай про OnClose & caFree.
--
Regards, LVT.
AntonT (2008-05-11 20:34:00) [6]А скажите тогда (НЕ для данного случая),
как тогда "совсем" закрыть форму? Т.е. чтобы она не висела в памяти, особенно, елси на форме ADOQuery с подключенными к ним DBGrid-ами!?
Leonid Troyanovsky (2008-05-11 20:28:00) [7]
> AntonT (11.05.08 20:07)
> это не поддаётся здравому смыслу - как может выполнить процедуру
> уже закрытая форма?
Не главная (автосоздаваемая) форма при Close просто прячется.
Да и Close - это еще не конец жизни, вот после Destroy -
проблемы возможны.
--
Regards, LVT.