Четвертый BORLAND С++ и его окружение

       

Выполнение диалогового блока


Выполнение диалогового блока аналогично созданию и выводу

диалогового окна, однако некоторые шаги здесь можно сократить,

так как диалоговые блоки выводятся на короткое время. Это зависит

также от того, является диалоговый блок режимным или безрежимным.

Большинство диалоговых блоков режимные. При выводе такого

диалогового блока пользователь не может использовать родительское

окно, пока не закроет этот диалоговый блок. Таким образом, режимный диалоговый блок "замораживает" операции в остальной части

приложения.

Для режимного выполнения диалогового блока используйте TDialog::Execute. При закрытии диалогового блока Execute возвращает

целое значение, указывающее на характер закрытия (идентификатор

"нажатого" управляющего элемента, например, IDOK). Если диалоговый блок распределялся динамически, не забудьте удалить объект.

При открытии безрежимного диалогового блока вы можете продолжать использование в приложении других окон. Такой блок можно

использовать, чтобы пользователь мог продолжать выполнять другие

действия, находить информацию и т.д.

Для безрежимного выполнения диалогового блока используйте

TDialog::Create. При этом с помощью флага WS_VISIBLE или функции

ShowWindow нужно явно задать видимость диалогового блока. Закрыть

диалоговый блок и удалить объект можно с помощью TDialog::CmOk и

TDialog::CmCancel.

Альтернативно вы можете создать свой объект диалогового блока в конструкторе родительского объекта диалогового блока. Таким

образом диалоговый блок создается только один раз, а любые изменения, вносимые в его состояние (такие как расположение, активность и т.д.) сохраняются при следующем открытии диалогового блока. Как и любые другие дочерние окна, объект диалогового окна автоматически удаляется при уничтожении родительского объекта, и

явное его удаление не требуется.

Можно также использовать автоматическое создание. При этом

ObjectWindows автоматически создает за вас дочерние диалоговые

объекты. Создав эти объекты в конструкторе производного от TWindow класса (спецификацией в качестве родительского объекта this),



Содержание раздела