Отображает определяемое пользователем диалоговое окно.
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)
Значение Основная кнопка 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( ) Функция