Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа_3_1_Лс_27_11_2011.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
4.63 Mб
Скачать

Лабораторная работа № 5. Введення-виведення даних. Функція inputbox и msgbox. Вікно й функція inputbox.

Системные функции InputBox и MsgBox

К системным функциям относятся функции, действие которых напрямую зависит от работы системы Windows. Это:

  • функция InputBox – для ввода данных пользователем через системное окно;

  • функция MsgBox – для выдачи сообщений пользователю через системное окно.

Работа этих функций сопровождается появлением на экране одного из двух окон: Окна ввода (InputBox) и Окна сообщений (MsgBox). Вы уже знакомы с объектом, который дает возможность пользователю вводить информацию. Это текстовое поле. Другой способ ввода информации — использовать функцию InputBox. Эта функция вызывает окно InputBox.

Окно InputBox состоит из 4-х элементов:

  • строки Заголовка (title);

  • Приглашения к вводу (prompt);

  • поля ввода со Значением, предлагаемым по умолчанию (default);

  • двух кнопок (<ОК> и <Саnсеl>).

Це вікно містить текст, що запитує користувач, щоб ввести деяке значення, і текстове вікно для введення цього значення. Також в ньому присутні стандартні елементи діалогу — командні кнопки ОК (підтвердження дії) і Cancel (скасування дії). При щелчке пользователем по кнопке <ОК> функция InputBox возвращает строку, введенную пользователем, а при щелчке по кнопке <Сапсеl> возвращается пустая строка.

Формат функции InputBox

Р = InputBox (Приглашение [,Заголовок] [,Значение по умолчанию] [,Х] [,Y])

Р —возвращаемое значение функции;

X, Y — координаты левого верхнего угла окна.

Все необязательные параметры указаны в квадратных скобках.

ЗАВДАННЯ 5.1.

Постановка задачи: ВЫПОЛНИТЬ ПРОЕКТ, В КОТОРОМ БУДЕТ ЗАПРАШИВАТЬСЯ ИМЯ ПОЛЬЗОВАТЕЛЯ, А ПОТОМ ПЕЧАТАТЬСЯ МАЛЕНЬКОЕ ПРИВЕТСТВИЕ НА ФОРМЕ С ИСПОЛЬЗОВАНИЕМ ВОЗВРАЩАЕМОГО ЗНАЧЕНИЯ ФУНКЦИИ InputBox.

Порядок действий

1. Расположите на форме одну командную кнопку (рис.5.1).

Рис.5.1

2. Установите значения свойства Name для формы и кнопки такие, как показано ниже в программном коде.

3. Наберите программный код проекта. Самостоятельно заполните пропуски (...):

Private sub cmdПриветствие_Click()

Dim YourName As String

YourName=InputBox("Bведите свое имя", "Имя") 'Присваивание переменной YourName

'значения введенного пользователем

'с помощью окна InputBox (рис. 5.2)

cmdПриветствие.Visible = False 'Кнопка становится невидимой

With frmПриветствие

………………………….'Самостоятельно установите тип, размер, начертание и цвет шрифта,

'которым сообщение будет печататься на форме

End With

…………………………. 'Используя метод Print и функции Spc и Tab, добейтесь,

'чтобы сообщение на Форме выглядело как на рис. 5.3

End Sub

Рис. 5.2

Рис. 5.3

4. Проверьте работу проекта. При этом:

а) после щелчка мышью по кнопке < Щелкни здесь> должно появиться окно приведенное на рис 5.2;

б) после ввода имени и щелчка по кнопке <ОК> должно появиться окно, приведенное на рис. 5.3.

Примечание. Часть текста может быть не видна, если она печатается на том месте, где была кнопка. Установите для формы значение свойства AutoRedraw (автоматическая перерисовка), равное True, и недостаток будет устранен.

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

Оно содержит текст, который спрашивает пользователь, чтобы ввести некоторое значение, и текстовое окно для ввода этого значения. Также в нем присутствуют стандартные элементы диалога — командные кнопки ОК (подтверждение действия) и Cancel (отмена действия).

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

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

  • Текст Сообщения (prompt),

  • Заголовок (title),

  • пиктограмма

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

Формат оператора MsgBox

MsgBox ТекстСообщения [,Константа] [,Заголовок]

где Константа — одна целая константа (или несколько констант), определяющая, какие кнопки (комбинации кнопок) и пиктограммы будут отображаться в окне сообщения.

Параметр Константа определяет внешний вид окна MsgBox. Значение параметра формируется из значений нескольких частей, которые можно складывать: Button, Icon, Default, Modal, Extras.

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

Для категории Button, Icon, Default и Modal можно использовать только одну из допустимых констант, для категории Extras допускается применение комбинации значений.

В табл. 5.1 приведены константы параметров наличия кнопок в окне сообщения и установки фокуса на кнопку

Таблица 5.1

Константа

Значение

Описание

Категория Button

VbOkOnly

0

Только кнопка <ОК>

VbOkCancel

1

Кнопки <ОК> и <Отмена>

VbAbortRetryIgnore

2

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

VbYesNoCancel

3

Кнопки Да, Нет и Отмена

VbYesNo

4

Кнопки Да и Нет

VbRetryCancel

5

Кнопки Повторить и Отмена

Категория Icon

VbCritical

16

Отображает пиктограмму Critical Message

VbQuestion

32

Отображает пиктограмму Warning Query

VbExclamation

48

Отображает пиктограмму Warning Message

VbInformation

64

Отображает пиктограмму Information Message

Категория Default

VbDefaultButton1

0

По умолчанию активна первая кнопка

VbDefaultButton2

256

По умолчанию активна вторая кнопка

VbDefaultButton3

512

По умолчанию активна третья кнопка

VbDefaultButton4

768

По умолчанию активна четвертая кнопка

Категория Modal

VbApplicationModal

0

Модальное диалоговое окно приложения

VbSystemModal

4096

Модальное диалоговое окно системы

Категория Extras

VbMsgBoxHelpButton

16384

Дополнительная кнопка для справки

VbMsgBoxSetForeground

65536

Отображение диалогового окна в фоновом режиме

VbMsgBoxRight

524288

Текст выравнен по правому краю

VbMsgBoxRtReading

1048576

Текст отображается справа налево (еврейский, арабский)

a) Дополните ЗАВДАННЯ 5.1, изменив проект таким образом, чтобы текст приветствия выводился в окне MsgBox.

Замечание В данном проекте не предусматривается реакция программы на нажатие той или иной кнопки окна MsgBox. Пока ставится цель только посмотреть, как меняется внешний вид окна.

Порядок действий.

1. Измените программный код проекта следующим образом:

Private Sub CmdПриветствие_Click()

Dim YourName As String

Dim t As String

YourName = InputBox("Введите свое имя", "Имя")

CmdПриветствие.Visible = False

t = 0 + 64 'Кнопка ОК и пиктограмма Информация

MsgBox "Здравствуйте " +YourName+ "! Рады приветствовать Вас в нашем проекте!", t, "Привет!!!"

End Sub

2. Проверьте работу проекта (рис. 5.4).

Рис.5.4

3. Измените две последние строки программного кода следующим образом:

t = 2 + 16 'Кнопки Прервать, Повторить, Пропустить и пиктограмма Critical Message

'MsgBox YourName + "! Произошла ошибка!", t, "Ошибка!!!"

4. Сохраните изменения и проверьте работу проекта (рис. 5.5).

Рис.5.5

5. Измените две последние строки программного кода следующим образом:

t = 4 + 32 'Кнопки Да, Нет и пиктограмма Warning Query

MsgBox "Здравствуйте" + YourName + "! Вы согласны пройти тестирование?", t, "Тестирование!!!"

6. Сохраните изменения и проверьте работу проекта (рис. 5.6).

Рис.5.6

7. Замените две последние строки программного кода одной строкой:

k = MsgBox("Здр " + YourName + " Вы будете тестироваться ", _

vbYesNo + vbQuestion, "Тестирование")

8. Проверьте, не изменился ли вид окна. Здесь вместо значений констант использованы сами встроенные константы Visual Basic.

Чтобы избежать ошибок в написании встроенных констант Visual Basic, выбирайте их из списка, который выпадает после набора запятой или знака +.

Функция MsgBox() Если Вам необходимо не только что-либо сообщить пользователю, но и получить информацию о том, какое решение принял пользователь, можно применить функцию MsgBox. Эта функция не только отображает окно сообщения, но еще и возвращает некоторое значение (ответ пользователя о том, какое он принял решение).

Формат функции MsgBox()

ВозвращаемоеЗначение = MsgBox ТекстСообщения [,Константа][,Заголовок]

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

Примечание. Категория Default (кнопка активная по умолчанию) должна определяться таким образом, чтобы при случайном нажатии клавиши [Enter] действия, реализуемые по умолчанию в процедуре обработки щелчком по кнопке по умолчанию, не могли нанести большого вреда. Например, не следует в окне с вопросом "Удалить все внесенные изменения? (Да/Нет)" назначать кнопку <Да> активной по умолчанию.

Таблица 5.2

Константа

Значение

Нажата кнопка

VbOk

1

<OK>

VbCancel

2

<Отмена>

VbAbort

3

«Стоп (Прервать) >

VbRetry

4

<Повторить>

Vblgnore

5

<Пропустить>

VbYes

6

<Да>

VbNo

7

<Нет>

b) Дополните ЗАВДАННЯ 5.1, изменив проект таким образом, чтобы на форме печаталось сообщение о том, какая кнопка нажата.

Порядок действия

1. Измените код следующим образом:

строку

MsgBox("Здравствуйте " + YourName + "! Вы согласны пройти тестирование?", vbYesNo + vbQuestion," Тестирование!!!")

замените строками:

k = MsgBox("Здр " + YourName + " Вы будете тестироваться ", _

vbYesNo + vbQuestion, "Тестирование")

If k = 6 Then

Print "Нажата кнопкаДа’"

Else

Print "Нажата кнопкаНет’"

End If

End Sub

объявите переменную k:

Dim k As String

Вместо вызова окна MsgBox здесь используется функция MsgBox. Возвращаемое значение функции присваивается переменной k и затем анализируется с помощью условного оператора If … Then...Else. Предварительно переменная k должна быть описана как символьная или числовая.

9. Сохраните проект и форму в папке ЛАБ5 с именами Лр5_Зад1_P_Фамилия и Лр5_Зад1_F_Фамилия соответственно.