Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб4_Visual Basic.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
775.68 Кб
Скачать

Л А Б О Р А Т О Р Н А Я Р А Б О Т А № 4

Тема: «Организация ввода-вывода с использованием диалоговых окон»

Цель работы:

изучение возможностей организации ввода-вывода с использованием диалоговых окон;

закрепление темы при создании приложений.

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

В Visual Basic существует специальный вид окон – диалоговые. В распоряжении разработчика имеется хорошо развитый инструментарий для их создания. Диалоговые окна бывают двух типов – модальные и немодальные.

Модальное диалоговое окно – это окно, из которого нельзя перейти в другое окно, не закрыв текущее. Данный вид диалоговых окон используется для выдачи сообщений о ходе работы приложения, его настройки или ввода каких-либо данных, необходимых для работы. Модальное диалоговое окно вынуждает пользователя совершать некоторые действия или отвечать на запрос приложения вводом информации или выполнением какого-либо действия.

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

Простейшие из диалоговых окон – это окна сообщений и окна, предназначенные для ввода информации.

Рассмотрим более подробно окно сообщений и окно, предназначенное для ввода информации.

1.1. Окно сообщения MessageBox

Вид окна сообщения (рис. 4.1, 4.2) может быть различным, но в его состав всегда входят:

- текст сообщения;

- заголовок;

- значок;

- набор кнопок.

Рис. 4.1 Рис. 4.2

Диалоговое окно сообщения не требует проектирования. Его можно вызвать как процедуру и как функцию.

  1. Синтаксис команды:

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

Пример использования (рис. 4.1):

MsgBox “Здравствуй, пользователь”, vbExclamation, “Приветствие”

  1. Синтаксис функции:

Возвращаемое_значение = MsgBox (prompt [, buttons] [, title] [, helpfile, context])

Пример использования (рис. 4.2):

rez = MsgBox (“Закончить?”, vbQuestion + vbYesNo, “End”)

где:

  • prompt – текст сообщения в диалоговом окне. Максимальная длина текста 1024 символа. Строковое значение prompt может содержать несколько строк. Для разделения строк допускается использование символа возврата каретки (Chr(13)), символа перевода строки (Chr(10)) или комбинации этих символов (Chr(13) & Chr(10));

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

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

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

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

Значение параметра buttons формируется из нескольких частей, которые можно складывать:

buttons = icon + button + default + modal + extras

Для категорий icon, button, default и modal можно использовать только одно из допустимых значений. А для категории extras допускается применение комбинации значений.

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

Значок

Константа

Значение

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

vbExclamation

48

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

vbQuestion

32

Запрос

vbInformation

64

Информация

vbCritical

16

Ошибка

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

(категории button, default, modal и extras)

Константа

Значение

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

Категория

vbOkOnly

0

ОК

button

vbOkCancel

1

ОК, Отмена

vbAbortRetryIgnore

2

Прервать, Повтор, Пропустить

vbYesNoCancel

3

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

vbYesNo

4

Да, Нет

vbRetryCancel

5

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

vbDefaultButton1

0

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

default

vbDefaultButton2

256

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

vbDefaultButton3

512

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

vbDefaultButton4

768

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

vbAplicationModal

0

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

modal

vbSystemModal

4096

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

vbMsgBoxHelpButton

16384

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

extras

vbMsgBoxSetForeground

65536

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

vbMsgBoxRight

524288

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

vbMsgBoxRtlREading

1 048 576

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

Примечание. Заметим, что каждое из приведенных в таблицах значений слагаемых можно использовать в форме именованной константы, имя которой мнемонически указывает назначение данного слагаемого. Использование именованных констант в данном случае если и не облегчает программирование (их слишком много для запоминания), то облегчает последующее чтение кода.

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

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

Кнопка

Константа

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

OK

vbOk

1

Отмена

vbCancel

2

Прервать

vbAbort

3

Повтор

vbRetry

4

Пропустить

vbIgnore

5

Да

vbYes

6

Нет

vbNo

7

Примечание. Если в окне сообщения есть только аргумент prompt, то по умолчанию имя окна сообщения будет Project1, значок отсутствует и имеется единственная кнопка OK (при нажатии на которую функция возвращает значение 1, если обращение входит в состав выражения).

Пример. Введите в командном окне среды проектирования Immediate (пункт меню View, Immediate Window) следующую команду и нажмите клавишу Enter:

M sgBox "Приветствуем Вас!", 64,"Окно сообщений"

В ответ получите диалоговое окно (рис. 4.3):

Рис. 4.3

Отредактировав команду следующим образом:

MsgBox "Ошибка ввода данных!", 48+5,"Окно сообщений"

вы получите диалоговое окно (рис. 4.4):

Р ис. 4.4

Примечание. Окно Immediate (Непосредственное выполнение) предназначено для ручного ввода и выполнения команд Visual Basic 6.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]