Проектирование графического интерфейса пользователя____________285

чески не уничтожаются при закрытии приложения, т.е. от объектов, владельцем
1   (Owner) которых не является данная форма.

I      Начиная с C++Builder 4 формы имеют свойство OldCreateOrder, определяю-
|  щее моменты событий OnCreate и OnDestroy. Если это свойство установлено в fal-
Р  se (значение по умолчанию), то событие OnCreate наступает после того, как за-
кончили работу все конструкторы компонентов, содержащихся на форме, а собы-
тие OnDestroy наступает прежде, чем вызывается какой-либо деструктор. При Ol-
dCreateOrder = true, что соответствует поведению компонентов в C++Builder 3 и
более ранних версиях, событие OnCreate наступает при выполнении конструктора
TCustomForm, а событие OnDestroy наступает при выполнении деструктора TCus-
tomForm.

4.7.3 Модальные формы

Открытие форм как модальных используется в большинстве диалоговых окон.
Модальная форма приостанавливает выполнение вызвавшей ее процедуры до тех
пор, пока пользователь не закроет эту форму. Модальная форма не позволяет так-
же пользователю переключить фокус курсором мыши на другие формы данного
приложения, пока форма не будет закрыта. Т.е. пользователь должен выполнить
предложенные ему действия прежде, чем продолжить работу.

Модальной может быть сделана любая форма, если она делается видимой ме-
тодом ShowModal. Если та же самая форма делается видимой методом Show, то
она не будет модальной.

Поведение модальной формы определяется ее основным свойством ModalRe-

»sult. Это свойство доступно только во время выполнения приложения. При откры-
тии формы методом ShowModal сначала свойство ModalResult равно нулю. Как
только при обработке каких-то событий на форме свойству ModalResult будет при-
своено положительное значение, модальная форма закроется. А присвоенное зна-
чение можно будет прочитать как результат, возвращаемый методом ShowModal.
Таким образом программа, вызвавшая модальную форму, может узнать, что сде-
_   лал пользователь, работая с этой формой, например, на какой кнопке он щелкнул.
В      В C++Builder предопределены некоторые константы, облегчающие трактовку
результатов, полученных при закрытии модальной формы:

Численное   Константа Пояснение
I значение

ModalResult__________________________________________

О         | mrNone      ____________^__________________

1    ,,,    mrOk     ! Закрытие модальной формы нажатием кнопки ОК_

2           mrCancel  Закрытие модальной формы нажатием кнопки Can-
cel, или методом Close, или нажатием кнопки сис-
темного меню в полосе заголовка окна        __

13           mrAbort ; Закрытие модальной формы нажатием кнопки Abort
' 4           mrRetry   Закрытие модальной формы нажатием кнопки Retry
\ 5           mrlgnore Закрытие модальной формы нажатием кнопки 1^поге_
16           mrYes     Закрытие модальной формы нажатием кнопки Yes
7           mrNo     Закрытие модальной формы нажатием кнопки No
; 8          | mrAll    ; Закрытие модальной^ с[юрмы нажатием кнопки ^j_