Организация пользовательского интерфейса

Диалоговые окна

В 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.

Например:

IfAns = 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>, которая закрывает диалоговое окно без ввода данных.