Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
_N8_.doc
Скачиваний:
2
Добавлен:
24.04.2019
Размер:
123.39 Кб
Скачать

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

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

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

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

В Delphi предопределены некоторые константы, облегчающие трактовку результатов, полученных при закрытии модальной формы:

Численное значение ModalResult

Константа

Пояснение

0

mrNone

1

mrOk или idOK

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

2

mrCancel или idCancel

Закрытие модальной формы нажатием кнопки Cancel, или методом Close, или нажатием .кнопки системного меню в полосе заголовка окна

3

mr Abort

или idAbort

Закрытие модальной формы нажатием кнопки Abort

4

mrRetry

или idRetry

Закрытие модальной формы нажатием кнопки Retry

5

mrlgnore или idlgnore

Закрытие модальной формы нажатием кнопки Ignore

mrYes или idYes

Закрытие модальной формы нажатием кнопки Yes

7

mrNo или idNo

Закрытие модальной формы нажатием кнопки No

8

mrAll

Закрытие модальной формы нажатием кнопки All

9

mrNoToAll

Закрытие модальной формы нажатием кнопки NoТоAll

10

mrYesToAll

Закрытие модальной формы нажатием кнопки YesToAll

Все приведенные выше пояснения значений ModalResult (кроме значений О и 2) носят чисто условный характер. В своем приложении вы вольны трактовать ту или иную величину ModalResult и соответствующие константы как вам угодно.

Требуемые значения ModalResult можно задавать в обработчиках соответствующих событий в компонентах модальной формы. Однако при использовании кнопок можно обойтись и без подобных обработчиков. Дело в том, что кнопки типа TButton и TBitBtn имеют свойство ModalResult, по умолчанию равное mrNone. Для кнопок, расположенных на модальной форме, значение этого свойства можно изменить и тогда не потребуется вводить каких-либо обработчиков событий при щелчке на них. В кнопках BitBtn при свойстве Kind, не равном bkCustom, заложены по умолчанию значения ModalResult, соответствующие назначению той или иной кнопки.