Диалоговые окна
В Visual Basic существует специальный вид окон – диалоговые окна, обеспечивающих взаимодействие выполняемой программы с пользователем. Выделяют два типа диалоговых окон – модальные и немодальные.
Модальное окно – это окно, из которого нельзя перейти в другое окно, не закрыв текущее. Модальные диалоговые окна используются для выдачи сообщений о ходе работы приложения, его настройки или ввода каких-либо данных, необходимых для работы приложения.
Немодальное диалоговое окно – это окно, позволяющее перемещать фокус на другое окно или форму без закрытия текущего окна.
Простейшие из диалоговых окон – это окна сообщений и окна, предназначенные для ввода информации. В дополнение к ним в Visual Basic существует набор более сложных стандартных диалоговых окон для приложений:
- Open (Открыть) – диалоговое окно для поиска в файловой структуре нужного файла;
- Save As (Сохранить как) – для поиска места хранения файла и вводе его имени;
- Font (Шрифт) – для выбора и установки шрифта;
- Color (Цвет) – для выбора цветовой палитры;
- Print (Печать) – для настойки режима печати;
- Help (Справка) – для работы со справочной системой приложения.
Все перечисленные диалоговые окна можно создать с помощью элемента управления CommonDialog. Прежде чем его использовать, необходимо подключить к проекту библиотеку Microsoft Common Dialog Control 6.0 через диалоговое окно Components (Компоненты) среды проектирования:
Проект®Компоненты®Microsoft Common Dialog Control 6.0
Окно сообщения (MsgBox). Диалоговое окно сообщения не требует проектирования и вызывается из программы командой MsgBox или создается с помощью функции MsgBox (), которая имеет следующий синтаксис:
MsgBox (prompt [, buttons] [, title] [, helpfile, context]),
где:
- параметр prompt – обязательный. Эта строка выдается в окне сообщения, максимальная длина текста 1024 символа;
- параметр buttons – необязательный. Значение параметра целое число равное сумме значений, определяющих набор кнопок, и т. д., если его нет, то значение параметра равно 0;
- параметр title – текст заголовка окна сообщения;
- параметр helpfile – необязательный, представляет собой ссылку на файл справочной системы;
- параметр context – необязательный, представляет собой ссылку на содержание в файле справочной системы.
Два последних параметра являются необязательными и касаются справочной информации к данному сообщению.
Например:
Ans = MsgBox (“Закончить вычисления?”, VbYesNo + VbQuestion, “Пример окна MsgBox”)
В зависимости от выбора кнопки диалоговое окно MsgBox возвращает одно из значений, заданных системными константами. Для определения активной кнопки значение переменной Ans анализируется условным оператором If.
Например:
If Ans = VbYes Then UserForm1.Hide
Функция возвращает значение, соответствующее выбранной пользователем кнопке в окне сообщения.
Окно ввода информации (InputBox). Достаточно часто в диалоговом окне необходимо не только активизировать кнопки выбора действия, но и вводить определенную информацию, которая затем анализируется программой. Для выполнения таких действий в VB можно использовать диалоговое окно ввода информации InputBox.
Функция имеет следующий синтаксис:
InputBox (promt [, title] [, default] [,xpos] [, ypos] [,_ helpfile, context]),
где:
- параметр prompt – обязательный. Эта строка выдается в окне сообщения, максимальная длина текста 1024 символа;
- параметр title – текст заголовка диалогового окна;
- параметр default – строка в текстовом поле. Если параметр отсутствует, строка остается пустой;
- параметр xpos – позиция по вертикали левого верхнего угла диалогового окна относительно левого верхнего угла экрана (по умолчанию присваивается значение, соответствующее середине экрана);
- параметр ypos позиция по горизонтали левого верхнего угла диалогового окна относительно левого верхнего угла экрана (по умолчанию присваивается значение, соответствующее середине экрана);
- параметр helpfile – ссылка на файл справочной системы;
- параметр context – ссылка на содержание в файле справочной системы.
Окно InputBox содержит: сообщение о том, какие данные должен ввести пользователь, текстовое поле для ввода данных, две кнопки <ОК> и <Отмена>, которые подтверждают или отменяют ввод данных. Если после ввода данных активизируется кнопка <ОК>, то значением функции является текст, находящийся в поле ввода, а если – кнопка <Cancel>, то значением функции будет пустая строка.
Например:
A = InputBox (“Введите пароль”, “Окно для ввода пароля”).
В результате на экране появится диалоговое окно ввода пароля. В отличие от диалогового окна MsgBox, в окне InputBox всегда имеются только две кнопки управления: кнопка <OK>, которая подтверждает ввод данных, и кнопка <Cancel>, которая закрывает диалоговое окно без ввода данных.