Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Структурные особенности Visual Basic.docx
Скачиваний:
44
Добавлен:
17.11.2019
Размер:
2.86 Mб
Скачать

2. Диалоговые окна MsgBox и InputBox. Примеры.

В Visual Basic 6 существует специальный вид окон — диалоговые. В распоряжении разработчика имеется хорошо развитый инструментарий для их создания. Диалоговые окна бывают двух типов — модальные и немодальные. Модальное диалоговое окно — это окно, из которого нельзя перейти в другое окно, не закрыв текущее. Данный вид диалоговых окон используется для выдачи сообщений о ходе работы приложения, его настройки или ввода каких-либо данных, необходимых для работы. Примером такого диалогового окна в программе Visual Basic является окно About. Модальное диалоговое окно вынуждает пользователя совершать некоторые действия или отвечать на запрос приложения вводом информации или выполнением какого-либо действия.

Немодальное диалоговое окно — это окно, позволяющее перемещать фокус на другое окно или форму без закрытия текущего окна. Данный тип диалоговых окон используется редко. Примером немодального диалогового окна в Visual Basic является окно Find (Поиск), дающее возможность осуществлять поиск нужной информации.

Простейшие из диалоговых окон — это окна сообщений и окна, предназначенные для ввода информации. В дополнение к ним в Visual Basic 6 существует набор более сложных стандартных диалоговых окон для приложений:

  • Open (Открыть) — диалоговое окно для поиска в файловой структуре нужного файла;

  • Save As (Сохранить как) — для поиска места хранения файла и ввода его имени;

  • Font (Шрифт) — для выбора и установки шрифта;

  • Color (Цвет) — для выбора цветовой палитры;

  • Print (Печать) — для настройки режима печати;

  • Help (Справка) — для работы со справочной системой приложения. Рассмотрим эти диалоговые окна более подробно.

Окно сообщения (MsgBox)

Диалоговое окно сообщения (рис. 7.19) не требует проектирования и вызы вается из программы командой MsgBox или с помощью аналогичной функции MsgBox о, имеющей следующий синтаксис:

MsgBox (prompt[, buttons] [, title] [, helpfile, context])

где:

  • prompt — текст сообщения в диалоговом окне. Максимальная длина текста 1024 символа. В этот текст можно вставить в качестве разделителей строк перевод каретки Chr(13), перевод строки Chr(lO) или их комбинацию;

  • buttons — числовое выражение, которое задает параметры для кнопок управления и значков в диалоговом окне и составлено из констант, указанных в табл. 7.8 и 7.9. Если значение не указано, то по умолчанию присваивается значение 0;

  • title — текст заголовка диалогового окна;

  • helpfile — ссылка на файл справочной системы;

  • context — ссылка на содержание в файле справочной системы.

Необходимо иметь в виду, что для задания нескольких параметров кнопок и значков одновременно, следует просто сложить соответствующие константы.

Для примера введите в командном окне среды проектирования Immediate следующую команду и нажмите клавишу <Enter>:

MsgBox "Приветствуем Вас!", vbYesNo + vbExclamation,"Окно сообщений"

В ответ получите диалоговое окно

Таблица 7.8. Константы параметров для значков диалогового окна сообщения

Значок

Константа

Значение

Тип сообщения

vbExclamation

48

Предупреждение

vbQuestion

32

Запрос

vbInformation

64

Информация

vbCritical

16

Ошибка

В диалоговых окнах сообщении можно управлять отображаемыми в окне сообщения кнопками и установкой фокуса на одной из кнопок при открытии окна. Для этого можно использовать константы, приведенные в табл. 7.9.

Таблица 7.9. Константы параметров наличия кнопок в окне сообщения и установки фокуса на кнопку

Константа

Значение

Набор кнопок в диалоговом окне

vbOkOnly

0

OK

vbOkCancel

1

OK, Отмена

vbAbortRetryIgnore

2

Стоп, Повтор, Пропустить

vbYesNoCancel

3

Да, Нет, Отмена

vbYesNo

4

Да,Нет

vbRetryCancel

5

Повтор, Отмена

vbDefaultButton1

0

Устанавливает фокус на первой кнопке

vbDefaultButton2

256

Устанавливает фокус на второй кнопке

vbDefaultButton3

512

Устанавливает фокус на третьей кнопке

vbDefaultButton4

768

Устанавливает фокус на четвертой кнопке

vbApplicationModal

0

Назначает модальность приложения. Диалоговое окно будет модальным, то есть требующим обязательного закрытия для перехода в другие окна

vbSystemModal

4096

Назначает модальность системы. Диалоговое окно будет модальным на уровне системы, то есть пока диалоговое окно не закрыто, в любое другое приложение перейти нельзя

vbMsgBoxHelpButton

16384

Добавляет в диалоговое окно кнопку Справка

VbMsgBoxSetForeground

65536

Объявляет диалоговое окно фоновым окном

vbMsgBoxRight

524288

Выравнивает текст в диалоговом окне по правому краю

vbMsgBoxRtIReading

1 048 576

Переворачивает текст для чтения справа налево

В зависимости от выбора кнопки диалоговое окно MsgBox возвращает одно из значений, заданных системными константами. Это необходимо для анализа нажатой кнопки и выполнения соответствующих действий в программе. В исходном коде для этого можно использовать константы, указанные в табл. 7.10.

Таблица 7.10. Значения констант, возвращаемые кнопками окна сообщения

Кнопка

Константа

Значение при нажатии на кнопку

ОК

vb0k

1

Отмена

vbCancel

2

Стоп

vbAbort

3

Повтор

vbRetry

4

Пропустить

vblgnore

5

Да

vbYes

6

Нет

vbNo

7

Диалоговое окно ввода информации (InputBox)

Достаточно часто в диалоговом окне необходимо не только нажать кнопки выбора действия, но и ввести определенную информацию, которая затем анализируется программой. Для выполнения такого рода действий в Visual Basic можно использовать диалоговое окно ввода информации InputBox (рис. 7.20). Функция InputBox имеет следующий синтаксис:

InputBox (prompt [, title] [, default] [, xpos] [, ypos] [, helpfile, context])

где:

  • prompt — текст сообщения в диалоговом окне. Максимальная длина текста 1024 символа. В этот текст можно вставить в качестве разделителей строк перевод каретки Chr(13), перевод строки Chr(lO) или их комбинацию;

  • title — текст заголовка диалогового окна;

  • default — значение текстового поля ввода по умолчанию. Если параметр отсутствует, строка остается пустой;

  • xpos — позиция по горизонтали левого верхнего угла диалогового окна относительно левого верхнего угла экрана. По умолчанию присваивается значение, соответствующее середине экрана;

  • ypos — позиция по вертикали левого верхнего угла диалогового окна относительно левого верхнего угла экрана. По умолчанию присваивается значение, соответствующее середине экрана;

  • helpfile — ссылка на файл справочной системы;

  • context — ссылка на содержание в файле справочной системы.

Для примера введите в командном окне среды проектирования Immediate следующую команду:

strUserTest = InputBox ("Введите пароль", "Запуск приложения", "****")

В результате получите диалоговое окно, показанное на рис. 7.20.

В отличие от диалогового окна MsgBox, в окне InputBox всегда имеются только две кнопки управления: ОК и Cancel. Кнопка ОК подтверждает ввод данных, кнопка Cancel — закрывает диалоговое окно без ввода данных.