FoxPro8

         

Использование диалоговых окон


В процессе выполнения приложения осуществляются разнообразные проверки, например, проверка соответствия введенного в поле значения заданным условиям. Если в результате проверки окажется, что введенное значение не удовлетворяет требуемым условиям, необходимо об этом сообщить пользователю. Из текста сообщения должна быть ясна причина ошибки. Кроме того, текст должен содержать рекомендации по ее исправлению. Для вывода информационного сообщения вы можете воспользоваться функцией messagebox или создать собственную функцию. Рассмотрим описание функции messagebox и приведем пример ее использования.

Функция имеет следующий синтаксис:

MESSAGEBOX (текст-Сообщения [,типДиалоговогоОкна [,заголовок] ] )

Аргумент текстсообщения содержит текст выводимого сообщения. Длинное сообщение автоматически располагается на нескольких строках. Если сообщение состоит из нескольких предложений и вы хотите разбить его на абзацы, то используйте функцию chr(13) для формирования новой строки.

Аргумент типДиалоговогоОкна задает перечень кнопок и значков, которые будут отображаться в диалоговом окне. Данный аргумент является числовым и его значение определяется как сумма трех параметров: типа кнопок, типа значков и номера кнопки, выбранной по умолчанию. Возможные значения этих параметров приведены в табл. 12.1 —12.3.

Таблица 12.1. Кнопки, отображаемые в диалоговом окне

Значение Кнопки
0 ОК
1 ОК и Cancel
2 Abort, Retry, Ignore
3 Yes, No, Cancel
4 Yes, No
5 Retry, Cancel

Таблица 12.2. Значки, отображаемые в диалоговом окне

Значение Значок
16 Знак Stop
32 Вопросительный знак
48 Восклицательный знак
64 Информационный знак (i)

Таблица 12.3. Кнопка, выбираемая по умолчанию

Значение Кнопка по умолчанию
0 Первая кнопка
256 Вторая кнопка
512 Третья кнопка

Функция messagebox возвращает числовое значение, определяющее нажатую пользователем кнопку. Возможные значения приведены в табл. 12.4.

Таблица 12.4. Значения, возвращаемые функцией messagebo:-.


Значение Кнопка
1 ОК
2 Cancel
3 Abort
4 Retry
5 Ignore
6 Yes
7 No
Рассмотрим использование диалогового окна для вывода сообщения об ошибке ввода значения кредита клиента. Для этого выполните следующие действия:

  • Откройте форму для ввода информации о клиентах.




  • Рис. 12.2. Определение процедуры для события Valid

  • Выберите поле ввода значения кредита и для события Valid определите процедуру (рис. 12.2), которая проверяет введенное значение и при необходимости открывает диалоговое окно с сообщением об ошибке:


  • if THIS.Value > 5000

    = MESSAGEBOX("Максимальный кредит для клиента составляет ;

    5000 рублей." + ;

    CHR(13) + ;

    "В особых случаях согласуйте величину кредита ;

    с Генеральным директором.",; 0+4 8+ 0, "Предупреждение")

    endif

  • Запустите форму на выполнение, введите значение кредита более 5 000, перейдите на следующее поле. Откроется диалоговое окно с сообщением об ошибке (рис. 12.3).




  • Рис. 12.3. Диалоговое окно с сообщением об ошибке


    Содержание раздела