При Shutdown не вызывается OnDestroy! Нормально? :)
Если форму закрыть кнопкой [x], то вызываются
OnCloseQuery
OnClose
OnDestroy
А если shutdown (logoff, restart,...), то вызывается ТОЛЬКО
OnCloseQuery!
А если Application->Terminate(), то ТОЛЬКО
OnDestroy!
Кто не верит - попробуйте сами.
Если я чего-то не понимаю, или в чем-то не прав, поправьте.
Цитата:
Originally posted by SLA
Я всегда использовал обработчик TForm::OnDestroy для освобождения памяти, выделенной в конструкторе формы... Однако вчера нечаянно сделал вот такое открытие:
Если форму закрыть кнопкой [x], то вызываются
OnCloseQuery
OnClose
OnDestroy
А если shutdown (logoff, restart,...), то вызывается ТОЛЬКО
OnCloseQuery!
А если Application->Terminate(), то ТОЛЬКО
OnDestroy!
Кто не верит - попробуйте сами.
Если я чего-то не понимаю, или в чем-то не прав, поправьте.
Я всегда использовал обработчик TForm::OnDestroy для освобождения памяти, выделенной в конструкторе формы... Однако вчера нечаянно сделал вот такое открытие:
Если форму закрыть кнопкой [x], то вызываются
OnCloseQuery
OnClose
OnDestroy
А если shutdown (logoff, restart,...), то вызывается ТОЛЬКО
OnCloseQuery!
А если Application->Terminate(), то ТОЛЬКО
OnDestroy!
Кто не верит - попробуйте сами.
Если я чего-то не понимаю, или в чем-то не прав, поправьте.
Есть такая тема. Я в своё время тоже столкнулся. Надо обработчик на WM_ENDSESSION вешать.
А как ведёт себя деструктор формы? А как ведут себя деструкторы не-VCL классов? Сам бы проверил, только ближайшую неделю билдера у меня не будет.