Недавно занимался переносом приложения из Borland C++ Builder 6 (vcl version 6) в Borland Turbo C++ 2006 Professional (vcl version 10), и обнаружил весьма странную вещь: при уничтожении формы не происходит вызыв обработчика события OnHide.
Был весьма удивлён, и опечален данным фактом.
Дело в том, что и в BCB5, и в BCB6 этот обработчик спокойно вызывался перед уничтожением формы.
Непонятно, невызов — это баг или фича?
В Delphi vcl version 10 формы ведут себя аналогичным образом?
Прошу срочно вправить мне мозг!
Для заинтересовавшихся привожу логи и исходные тексты тестовых программ:
Исходнички тестовых приложений:
http://www.rsdn.ru/File/63344/MESSAGES_AND_FORMS.7z
Лог работы программы, собранной в BCB6:
http://www.rsdn.ru/File/63344/TEST_BCB6_WXPSP2.TXT
Лог работы программы, собранной в Turbo C++ 2006 Pro:
http://www.rsdn.ru/File/63344/TEST_TC2006_WXPSP2.TXT
Правила использования —
1) компилируем программу в соответствующей среде,
2) запускаем DbgView, или любимый отладчик, способный ловить отладочный вывод,
3) запускаем свежескомпилированную программу,
4) ждём несколько секунд, и закрываем окошко кнопой X,
5) смотрим лог.