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

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

Третья кнопка

nDialogBoxType может быть суммой трех значений, одно значение из каждой предыдущей таблицы. Например, если nDialogBoxType равно 290 (2+32+256), то указанное диалоговое окно имеет следующие характеристики:
  • Abort, Retry, and Ignore buttons.

  • Окно сообщения отображает вопросительный знак.

  • Кнопка Retry получает фокус по умолчанию.

Дополнительная информация о константах доступна в файле FoxPro.h, расположенном в основном каталоге Visual FoxPro. Использование определяемых констант типа MB_ABORTRETRYIGNORE + MB_ICONQUESTION + MB_DEFBUTTON2 может быть более читаемо чем 2 + 32 + 256.
Обратите внимание:
Вопросительный знак использовать больше не рекомендуется, потому что он не отражает определенный тип сообщения и потому что формулирование сообщения в виде вопроса может быть отнесено к любому типу сообщения. Кроме того, пользователи могут путать вопросительный знак со Справочной информацией. Поэтому, не рекомендуют использовать символ вопросительного знака в ваших окнах сообщения. Система продолжает поддерживать его только для обратной совместимости.

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

См. Также