Встроенные диалоговые окна Visual Basic
Окно вывода
Встроенные диалоговые окна представляют собой операторы или функции языка. К ним относятся окно вывода (MessageBox) и окно ввода (InputBox). Окна диалогов используют системные функции Windows. Поэтому надписи на кнопках, названия полей и другие элементы окон диалога могут отображаться на экране в английском или русском варианте, в зависимости от версии и настроек Windows.
Окно сообщения создается функцией MsgBox, которая имеет следующий синтаксис:
MsgBox(prompt[, buttons] [, title] [, helpfile, context])
Функция возвращает значение, соответствующее выбранной пользователем кнопке в окне сообщения. Ниже приведены значения и имена возвращаемых констант. Имена можно использовать вместо значений в любом месте программы.
Константа |
Значение |
Нажатая кнопка |
vbOK |
1 |
OK |
vbCancel |
2 |
Отмена (Cancel) |
vbAbort |
3 |
Прервать (Abort) |
vbRetry |
4 |
Повторить (Retry) |
vbIgnore |
5 |
Пропустить (Ignore) |
vbYes |
6 |
Да (Yes) |
vbNo |
7 |
Нет (No) |
Параметр prompt обязательный. Это строка, которая выдается в окне сообщения. Её длина ограничена 1024 символами.
Параметр buttons необязательный. Значение параметра - целое число, равное сумме значений, определяющих набор кнопок, коды значков, кнопки по умолчанию в окне сообщения, а также модальность окна. Возможные значения описаны ниже. По умолчанию значение параметра равно 0.
Параметр title задает строку, которая является заголовком окна сообщения. Если параметр отсутствует, то в качестве заголовка используется имя приложения.
Функция окна вывода может иметь еще 2 необязательных параметра (helpfile и context), касающихся справочной информации, относящейся к данному сообщению. О них можно прочитать в справочной системе.
Константы для определении параметра buttons:
Константа |
Значе-ние |
Описание |
Наборы кнопок окна сообщения |
||
VbOKOnly |
0 |
Окно содержит только кнопку OK. |
VbOKCancel |
1 |
Окно содержит кнопки OK и Cancel (Отмена). |
vbAbortRetryIgnore |
2 |
Окно содержит кнопки Abort (Прервать), Retry (Повторить) и Ignore (Пропустить). |
vbYesNoCancel |
3 |
Окно содержит кнопки Yes (Да), No (Нет) и Cancel (Отмена). |
vbYesNo |
4 |
Окно содержит кнопки Yes (Да) и No (Нет). |
vbRetryCancel |
5 |
Окно содержит кнопки Retry (Повторить) и Cancel (Отмена). |
Пиктограммы окна сообщения |
||
vbCritical |
16 |
Добавляет пиктограмму “Критическое сообщение”. Часто после такого сообщения программа прекращает работу. |
vbQuestion |
32 |
Добавляет пиктограмму “Запрос”. Обычно используется, когда для продолжения работы программы требуется дополнительная информация. |
vbExclamation |
48 |
Добавляет пиктограмму “Предупреждение”. |
vbInformation |
64 |
Добавляет пиктограмму “Информация”. Чаще всего используется для сообщения о завершении выполнения некоторой задачи. |
Кнопка по умолчанию |
||
vbDefaultButton1 |
0 |
Первая. |
vbDefaultButton2 |
256 |
Вторая. |
vbDefaultButton3 |
512 |
Третья. |
vbDefaultButton4 |
768 |
Четвертая. |
Модальность окна |
||
vbApplicationModal |
0 |
Модальность уровня приложения. Пока вы не нажмете одну из кнопок окна, вы не сможете вернуться в приложение, породившее это окно. При этом можно переключиться на другое приложение. |
vbSystemModal |
4096 |
Модальность системного уровня. Пока не будет закрыто это окно, никакие приложения не доступны. |
Например, в результате выполнения оператора
Ans = MsgBox("Закончить?", vbYesNo + vbQuestion + _
vbDefaultButton1, "Пример окна MsgBox")
появится окно сообщения как на рис.
Чтобы определить, какая кнопка была нажата, значение переменной Ans анализируется с помощью оператора If: Например:
If Ans = vbYes then UserForm1.Hide
Рис.
Окно ввода
Окно ввода служит для ввода данных. Оно создается функцией InputBox(), имеющей следующий синтаксис:
InputBox(prompt[, title] [, default] [, xpos] [, ypos] )
Окно содержит сообщение, указывающее какие данные должен ввести пользователь, поле текста для ввода данных и две кнопки ОК и Отмена, которые используются для подтверждения или отмены ввода данных. Закончив ввод данных, пользователь должен щелкнуть на одной из кнопок.
Если щелчок был сделан на кнопке ОК, то значением функции является текст, находящийся в поле ввода. Если щелчок был сделан на кнопке Отмена, то значением функции является пустая строка, независимо от того, что ввел пользователь.
Параметры функции имеют следующий смысл:
prompt – строка сообщения, которая будет напечатана в окне;
title – строка, которая является заголовком окна. Если параметр не указан, то в качестве заголовка используется имя приложения;
default – строка, помещаемая в текстовое поле. Если параметр не указан, то поле текста будет пустым;
xpos – расстояние в твипах от левой границы экрана до левой границы окна. Если параметр не указан, окно центрируется по горизонтали;
ypos – расстояние в твипах от верхней границы экрана до верхней границы окна.
Окно ввода может иметь еще два необязательных параметра (helpfile и context). О них можно прочитать в справочной системе.
Для преобразования введенной строки в другой тип данных используйте функции преобразования типов: CCur(), CDate(), CInt(), CLng(), CSng(), CVar() и другие.
В качестве примера на рис. приведено окно, созданное с помощью оператора:
A = InputBox("Введите значение:", "Пример окна InputBox")
Рис.