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

Встроенные диалоговые окна.

Передача данных программе и получение данных от программы представляет непростую задачу. В зависимости от конкретного применения программы создается код, реализующий пользовательский интерфейс, и эта часть программы является важной. В профессионально разработанных программах объем кода, реализующего пользовательский интерфейс, занимает около 90 % общего объема кода, и только 10 % используется для обработки данных.

Visual Basic представляет возможность применять диалоговые окна для получения данных от пользователя и для передачи ему информации.

Выделяют следующие виды окон:

  • Встроенные диалоговые окна сообщений;

  • Встроенные диалоговые окна ввода данных;

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

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

Если требуется отобразить числа. используются функции Str() или Format() позволяющие преобразовать число в символьное представление.Добавление командных кнопок в окно сообщения для создания диалогового окна в полном варианте процедура MsgBox имеет три параметра. Командные кнопки позволят пользователю выбрать направление действий или вариант ответа на простой вопрос.Добавить командные кнопки можно используя необязательные аргументы функции MsgBox().

Коды этих команд передаются в качестве второго аргумента функции (первым аргументом является текст, отображаемый в диалоговом окне) или в качестве поименованного аргумента buttons. Список кодов и имен констант, допустимых в Visual Basic, приведен в табл. 6: Таблица 6

Код

Константа

Описание

Коды командных кнопок

0

vbOKOnly

OK

1

vbOKCancel

2

vbAbortRetryIgnore

Abort, Retry и Ignore

3

vbYesNoCancel

Yes, No и Cancel

4

vbYesNo

Yes и No

5

vbRetryCancel

Retry и Cancel

Продолжение таблицы 3

Коды активности по умолчанию

0

vbDefaultButton1

Активная первая кнопка

256

vbDefaultButton2

Активная вторая кнопка

512

vbDefaultButton3

Активная третья кнопка

Коды пиктограмм

16

vbCritical

Важное сообщение

32

vbQuestion

Предупредительный запрос

48

vbExclamation

Предупредительное сообщение

64

vbInformation

Информационное сообщение

Коды модальности окна

0

vbApplicationModal

Программное модальное

4096

vbSystemModal

Системное модальное

Если Вы хотите отобразить более одной кнопки, следует определить, которая из них будет активной по умолчанию. Командная кнопка, активная по умолчанию, автоматически считается нажатой, если пользователь после отображения диалогового окна нажал клавишу Enter.

Кроме того, Вы можете решить будет ли диалоговое окно модальным. Если диалоговое окно не модальное, то пользователь может переключиться на другое окно, продолжив таким образом работу без закрытия диалогового окна. Если же диалоговое окно задано как модальное, то пользователь должен закрыть его, прежде чем продолжать работу с данной программой. Существуют два типа модальных диалоговых окон – программные модальные и системные модальные. Пользователь должен закрыть программное модальное окно, прежде чем продолжить работу с программой, отобразившей это окно; хотя в этом случае разрешается переключаться на другую программу, не закрыв данное диалоговое окно. Системное модально диалоговое окно требует, чтобы пользователь закрыл его прежде, чем делать что-нибудь еще.

Чтобы код был более очевидным, следует использовать поименованные константы, а не числа.

Можно использовать, например, любой из операторов MsgBox():

MsgBox prompt:= “Доброе утро, страна?”, _

buttons:=theCode

MsgBox “Доброе утро, страна?”, theCode

Каждый из этих операторов, после записи на панели Immediat окна Debug, обеспечит создание диалогового окна.

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

Таблица 7.

Код

Константа

Командная кнопка

1

vbOk

OK

2

vbCancel

Cancel

3

vbAbort

Abort

4

vbRetry

Retry

5

vbIgnore

Ignore

6

vbYes

Yes

7

vbNo

No

Чтобы изменить заголовок, следует добавить в вызов функции MsgBox() еще один строковый аргумент, содержащий новый заголовок. При использовании формы списка аргументов, заголовок будет третьим аргументом; в противном случае используйте title :=”Текст заголовка”.

Sub MakeDialog2()

Dim theCode As Integer

Dim theReply As Integer

theCode = vbYesNo + vbDefaultButton2 + vbExclamation + vbApplicationModal

theReply = MsgBox(prompt:="Вы действительно хотите это сделать?", Buttons:=theCode, _

Title:="Относительно того, что Вы собрались сделать")

Select Case theReply

Case vbYes

theReply = MsgBox(prompt:="Вы нажали кнопочку Да")

Case vbNo

theReply = MsgBox(prompt:="Вы нажали кнопочку Нет")

End Select

End Sub

Функция InputBox создает диалоговое окно другого типа. Базовое окно ввода содержит окно редактирования, командную кнопку ОК и Cancel. Любой текст, записываемый в текстовое окно диалогового окна, будет возвращен функцией после того, как пользователь нажмет кнопку ОК, иначе будет возвращена пустая строка.

Первый аргумент функции InputBox() – строка текста, применяемая в качестве запроса на ввод в диалоговом окне;

второй – заголовок;

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

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

Существует еще два типа встроенных диалоговых окон: GetOpenFilename и GetSaveAsFilename. Эти окна не открывают файл и не сохраняют его, а только позволяют указать его имя и путь. Команды, создающие такие диалоговые окна, являются не операторами Visual Basic, а методами Application.

Операторы, создающие эти два типа диалоговых окон, имеют следующий синтаксис:

theFilename=Application.GetOpenFilename (файловый_фильтр,индекс_фильтра, заголовок)

theFilename=Application.GetSaveAsFilename (начальное_имя_файла, _файловый фильтр, индекс_фильтра, заголовок)

Оба метода применяются к объекту Application и возвращают имя файла и путь, выбранные пользователем.

Аргумент файловый_фильтр определяет, какие файловые фильтры перечисляются в выпадающем списке File Type диалогового окна. Всписке файлов диалогового окна появляются только те файлы, которые совпали с выбранным файловым фильтром.

Файловый фильтр состоит из двух частей – текста и фильтра. Текст отображается в выпадающем списке File Type; а фильтр используется для выбора файлов из списка.

Аргумент индекс_фильтра является целым числом, задающим в выпадающем списке File Type файловый фильтр поумолчанию. Аргумент заголовок аналогичен используемому для функции InputBox(). Аргумент начальное_имя_файла определяет начальное , заданное по умолчанию, имя файла, которое помещают в окно редактирования текста.