производный от TWindow класс строит список дочерних окон. Это
происходит также когда объект диалогового блока является
элементом данных родительского класса. При создании производного
от TWindow класса он пытается создать все дочерние объекты в
списке с включенным флагом wfAutoCreate. В результате дочерние
объекты выводятся на экране одновременно с родительским окном.
Включить флаг wfAutoCreate можно с помощью функции EnableAutoCreate, а выключить - с помощью DisableAutoCreate. Для автоматического создание дочерних объектов TWindow использует Create.
При использовании автоматического создания нужно обеспечить видимость диалогового блока с помощью флага WS_VISIBLE. Для разрешения автоматического создания можно использовать ShowWindow.
Диалоговые блоки отличаются от других дочерних окон тем, что
в процессе существования родительского окна они могут выводиться
и уничтожаться многократно, но редко выводятся и уничтожаются одновременно с родительским окном. Обычно приложение выводит диалоговый блок в ответ на выбор в меню, щелчок "мышью", условие ошибки или другое событие. Таким образом, вы должны быть уверены, что
новые объекты диалоговых окон не строятся без удаления предыдущих.
Считать данные из диалогового блока можно в любое время, пока существует объект диалогового блока. Чаще всего это делается в
функции CmOK диалогового блока, которая вызывается по кнопке OK.
Аналогично оконным объектам, функции-элементы Create и Execute диалогового блока могут порождать исключительную ситуацию
TXWindow. Такая ситуация обычно возникает при невозможности создания диалогового окна. Можно также использовать глобальный обработчик особых ситуаций, который ObjectWindows инсталлирует при
запуске приложения, или установить свой собственный. Чтобы задать
собственный разработчик, заключите защищаемый код в блок
try/catch.