Невызов обработчика OnHide в VCL10?
От: Властелин Котлет Россия  
Дата: 07.02.07 10:56
Оценка:
Недавно занимался переносом приложения из 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) смотрим лог.
//
C3 18 D5 C3 29 E3 CD 48 55 7A 33 33
Re: Поправочка
От: Властелин Котлет Россия  
Дата: 07.02.07 11:06
Оценка:
Правильная ссылочка на исходнички:

http://www.rsdn.ru/File/63344/MESSAGES_AND_FORMS.zip
//
C3 18 D5 C3 29 E3 CD 48 55 7A 33 33
Re: Невызов обработчика OnHide в VCL10?
От: trophim Россия  
Дата: 07.02.07 22:27
Оценка:
А в исходники VCL заглянуть религия не позволяет? Посмотри, в каком методе в недрах VCL вызывался OnHide в старом VCL, а затем просмотри исходник этого метода в новой версии VCL. Или в турбо редакции нет исходников?
[EOF]
Let it be! — Давайте есть пчелу!
Re[2]: Да был я там...
От: Властелин Котлет Россия  
Дата: 08.02.07 16:19
Оценка:
Был там, и видел место, в котором есть условие, не позволяющее вызывать OnHide.

Однако же, (Как бы это попроще выразить? ) — меня более волнует не "что" (конкретное условие; шестерёнка в механизме ), а "почему" или "зачем" (переставили, вывели из зацепления ), что за этим стоит в плане идеологии.

Я надеюсь, что найдутся люди, которые, задаваясь подобным вопросом, нашли какой-то свой ответ; имеют сложившееся мнение по сути, услышать которое будет очень полезно.
//
C3 18 D5 C3 29 E3 CD 48 55 7A 33 33
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.