Использование диалоговых окон
В процессе выполнения приложения осуществляются разнообразные проверки, например, проверка соответствия введенного в поле значения заданным условиям. Если в результате проверки окажется, что введенное значение не удовлетворяет требуемым условиям, необходимо об этом сообщить пользователю. Из текста сообщения должна быть ясна причина ошибки. Кроме того, текст должен содержать рекомендации по ее исправлению. Для вывода информационного сообщения вы можете воспользоваться функцией 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
if THIS.Value > 5000
= MESSAGEBOX("Максимальный кредит для клиента составляет ;
5000 рублей." + ;
CHR(13) + ;
"В особых случаях согласуйте величину кредита ;
с Генеральным директором.",; 0+4 8+ 0, "Предупреждение")
endif
Рис. 12.3. Диалоговое окно с сообщением об ошибке