Отображает определяемое пользователем диалоговое окно.
MESSAGEBOX(eMessageText [, nDialogBoxType ][, cTitleBarText][, nTimeout]) |
Параметры
- eMessageText
- Определяет текст, который появляется в диалоговом окне. Вы можете также определить любую допустимую функцию Visual FoxPro, объект, или тип данных вместо eMessageText . Максимальная длина текста, который Вы можете определить составляет 1024 символов.
Обратите внимание: Visual FoxPro конвертирует объектные ссылки в строку, " (Object) ". Если Вы определяете функцию, которая возвращает несимвольное значение, Visual FoxPro автоматически использует функцию TRANSFORM( ) , чтобы обеспечить её эквивалент в символьном виде. В следующем примере, символьное значение даты возвращается и передается в MESSAGEBOX () :
Скопировать код MESSAGEBOX(DATE())
Совет: Для перемещать части сообщения на следующую строку в диалоговом окне, используйте символ перевода каретки, CHR(13), в eMessageText . Высота и ширина диалогового окна увеличиваются так чтобы поместилось eMessageText .
- nDialogBoxType
- Определяет кнопки и иконки, которые появляются в диалоговом окне, кнопки по умолчанию при выводе диалогового окна, и поведение диалогового окна. В следующих таблицах, определены значения 0 - 5 для описания кнопок, которые появляются в диалоговом окне. Значения иконки 16, 32, 48, и 64 определяют иконку, которая появляется в диалоговом окне. Значения по умолчанию 0, 256, и 512 определяют, какая кнопка в диалоговом окне является кнопкой, получающей фокус по умолчанию. При отображении диалогового окна, фокус получает эта кнопка. Отсутствие nDialogBoxType является идентичным определению значения 0 для nDialogBoxType .
Значение Кнопки диалогового окна 0
Только кнопка OK
1
Кнопки OK И CANCEL
2
Кнопки Abort, Retry, и Ignore
3
Кнопки Yes, No, и Cancel
4
Кнопки Yes и No
5
Кнопки Retry и Cancel
Значение Значок 16
Знак останова
32
Вопросительный знак
48
Восклицательный знак
64
Значок Информации (i)
nDialogBoxType может быть суммой трех значений, одно значение из каждой предыдущей таблицы. Например, если nDialogBoxType равно 290 (2+32+256), то указанное диалоговое окно имеет следующие характеристики:Значение Основная кнопка 0
Первая кнопка
256
Вторая кнопка
512
Третья кнопка
- Abort, Retry, and Ignore buttons.
- Окно сообщения отображает вопросительный знак.
- Кнопка Retry получает фокус по умолчанию.
Обратите внимание: Вопросительный знак использовать больше не рекомендуется, потому что он не отражает определенный тип сообщения и потому что формулирование сообщения в виде вопроса может быть отнесено к любому типу сообщения. Кроме того, пользователи могут путать вопросительный знак со Справочной информацией. Поэтому, не рекомендуют использовать символ вопросительного знака в ваших окнах сообщения. Система продолжает поддерживать его только для обратной совместимости. - Abort, Retry, and Ignore buttons.
- cTitleBarText
- Определяет текст, который появляется в области заголовка диалогового окна. Если Вы опускаете cTitleBarText , то заголовком является "Visual FoxPro Microsoft".
- nTimeout
- Определяет количество миллисекунд в течение которых Visual FoxPro выводит eMessageText не учитывая ввода с клавиатуры или мыши перед очисткой eMessageText . Вы можете определить любое допустимое значение задержки. Значение меньше чем 1 не вызывает задержки до тех пор пока пользователь не осуществит ввод и соответсвует отсутствию параметра nTimeout .
Возвращаемое значение
Числовой тип данных. MESSAGEBOX( ) возвращает значение, которое указывает, какая кнопка была выбрана в диалоговом окне. Следующая таблица перечисляет значения, которые MESSAGEBOX( ) возвращает для каждой кнопки.
| Возвращаемое значение | Кнопка |
|---|---|
|
1 |
OK |
|
2 |
Cancel |
|
3 |
Abort |
|
4 |
Retry |
|
5 |
Ignore |
|
6 |
Yes |
|
7 |
No |
В диалоговых окнах с кнопкой Cancel, выбор клавиши ESC для выхода из диалогового окна, возвращает то же самое значение (2) как выбор Cancel.
MESSAGEBOX () возвращает значение -1, когда происходит задержка времени.
Замечания
Максимально сокращенный синтаксис для MESSAGEBOX () MESSAGEB( ) .
Функция MESSAGEBOX( ) использует smart параметры в том, что тип параметра определяетя исходя из того какой параметр используется. Первый параметр обязателен и - всегда представлен eMessageText . Однако, дополнительный второй параметр может быть nDialogBoxType если он имеет числовой тип или cTitleBarText если Символьный . Параметр nTimeout всегда учитывается вторым переданным дополнительным числовым параметром. Допустимые примеры включают:
Скопировать код | |
|---|---|
MESSAGEBOX("HELLO","MyTitle",68,6000)
MESSAGEBOX("HELLO",68,"MyTitle",6000)
MESSAGEBOX("HELLO",68,6000)
MESSAGEBOX("HELLO",68,6000,"MyTitle")
| |
Пример
Следующий пример выводит определяемое пользователем диалоговое окно. Сообщение "Запись, не найденна. Хотели бы Вы найти снова? " отображено в качестве сообщения окна, а "Мое Приложение" отображена в области заголовка.
Определяемое пользователем диалоговое окно содержит кнопки Yes и No и иконку вопросительного знака, а вторая кнопка (No) получает фокус по умолчанию. Когда Вы выбираете одну из кнопок, отображается ваш выбор.
Скопировать код | |
|---|---|
eMessageTitle = 'My Application'
eMessageText = 'Record not found. Would you like to search again?'
nDialogType = 4 + 16 + 256
* 4 = Yes and No buttons
* 16 = Stop sign icon
* 256 = Second button is default
nAnswer = MESSAGEBOX(eMessageText, nDialogType, eMessageTitle)
DO CASE
CASE nAnswer = 6
WAIT WINDOW 'You chose Yes'
CASE nAnswer = 7
WAIT WINDOW 'You chose No'
ENDCASE
| |
См. Также
Другие Ресурсы
ФункцииWAIT Команда
DO CASE ... ENDCASE Команда
InputBox( ) Функция
TRANSFORM( ) Функция