Я хотел бы определить, когда была создана новая форма.
Теперь я использую событие Screen.ActiveFormChange
и проверяю наличие новых форм в Screen.CustomForms
, но ActiveFormChange
запускается после события OnShow
формы.
Я хотел бы обнаружить форму еще до того, как OnShow
был запущен. Есть ли способ сделать это, не изменяя блок Vcl.Forms
?
Я хотел бы обнаружить все формы (также модальные сообщения Delphi и т. Д.), Поэтому наследование всех форм из настраиваемого класса невозможно (поправьте меня, если я ошибаюсь).
Как вариант, можно ли определить, что новый компонент был добавлен в какой-то TComponent.FComponents
список?
TThemeManager
использовал ряд методов для обнаружения новых форм в программе. (Он должен был знать о новых формах, чтобы он мог инструментировать процедуры рисования своих компонентов и применять темы XP.) Возможно, стоит изучить этот код, чтобы увидеть, как это делается. - person Rob Kennedy   schedule 20.07.2012