IniTApp
TxtUser.Text = User
txtPassWord.text = “”
End Sub
10. Дважды щелкнуть на кнопке cmdLogon и добавить следующий фрагмент:
P
Рис. 7 Пример работы
приложения
Dim msg as string
User = txtUser.text
Password = txtPassword.text
If User = TxtUser.Text And Password = ACL Then
MsgBox "Приступайте к работе", vbInformation, "Регистрация"
Else
MsgBox "Пароль не верен, повторите", 32, "Регистрация"
End If
End Sub
11. Сделать форму FrmLogon стартовой и запустить приложение.
Поле Имя пользователя содержится имя «Павел», это значение было взято из глобальной строковой переменной User. Переменная не объявляется в процедуре события Form_Load, она объявлена глобальной секцией в модуле Module2 (рис.7).
Переменная хранения пароля объявлена в секции (General)(Declarations) формы. Обращаться к ней могут только функции данной формы. Это важно, потому что остальная часть программы не имеет права менять пароль пользователя. Переменная пароля доступна лишь в модуле формы.
Диалоговые окна используются для отображения на экране информации пользователю и получения от него простых ответов, таких как «да» или «нет». Окна как бы приостанавливают работу приложения, пока не будет совершена обработка содержащейся в них информации. Пользователь не имеет доступа к другим окнам текущего приложения, пока не завершит работу с данным окном.
Для создания диалогового окна (рис. 8) используется специальная функция (окна сообщений) MsgBox. Формат вызова функции следующий:
Result = MsgBox (текст, опции, заголок),
г
Рис
8 Диалоговое окно
Оператор MsgBox похож на функцию с тем же именем, за исключением того, что оператор не возвращает никакой информации о кнопке, которая была нажата. Синтаксис оператора:
MsgBox текст, опции, заголовок
где текст – текст сообщения; опции – целое число, определяющее кнопки и другие атрибуты окна; заголовок – текст заголовка окна.
Например: MsgBox «Это окно сообщений»
Размещение текста в окнах сообщений. Текст автоматически будет размещаться в несколько строк в зависимости от ширины окна сообщений. При необходимости можно установить символ перехода на новую строку с помощью функции Chr$(10), где Chr$() – это функция VB, которая в качестве результата возвращает символ, соответствующий указанному ASCII- коду, 10 соответствует коду перехода на другую строку.
Пиктограммы в окнах сообщений. Существует четыре стандартных пиктограммы, которые можно включить в окно сообщений, указывая опцию (соответствующее число после текста сообщения или имя константы):
Пиктограмма |
Значение |
Имя константы |
Critical |
16 |
vbCritical |
Quetion Mark (Знак вопроса) |
32 |
vbQuetion |
Exlamation Mark (Восклицательный знак) |
48 |
vbExlamation |
Information |
64 |
vbInformation |
Кнопки в окнах сообщений. По умолчанию появляется только одна кнопка – Ok. Появление кнопок задается прибавлением дополнительного числа к опции. Ниже перечислены значения этого дополнительного числа и константы, используемые для определения отображаемой кнопки.
Кнопка |
Значение |
Имя константы |
Ok |
0 |
vbOkOnly |
Ok, Cancel |
1 |
vbOkCancel |
Abort, Retry, Ignore |
2 |
vbAbortRetryIgnore |
Yes, No, Cancel |
3 |
vbYesNoCancel |
Yes, No |
4 |
vbYesNo |
Retry, Cancel |
5 |
vbRetryCancel |
Получение информации о нажатой кнопке. Чтобы получить информацию о нажатой кнопке, следует вместо оператора Msgbox использовать функцию с таким же именем. Функция возвращает значение, соответствующее значению нажатой кнопке. Это значение присваивается переменной, которая в дальнейшем и используется в коде программы. Значения, возвращаемые функцией при нажатии соответствующей кнопке, сведены в таблицу
-
Нажатая кнопка
значение
Имя
Ok
1
vbOk
Cancel
2
vbCancel
Abort
3
vbAbort
Retry
4
vbRetry
Ignore
5
vbIgnore
Yes
6
vbYes
No
7
vbNo
Функция InputBox$. Кроме нажатия кнопок при выборе альтернативы, пользователь часто должен вводить какие-то данные. Для этого используется функция InputBox$:
InputBox$ (Prompt, Title, Default, Left, Top)
где Prompt – строка сообщение, отображаемое в окне; Title – заголовок окна; Default – начальное значение, отображаемое в текстовом окне (области вводаf); Left –расстояние от левой границы экрана до текстового окна; Top – расстояние от верхней границы экрана до текстового окна.
При использовании функции InputBox$ в окне всегда появляются две кнопки – Ok и Cancel.
Упражнение 6 Диалоговые окна
1. Создать новый проект. Присвоить ему имя «Диалоговые_окна».
2. У формы проекта изменить свойства: Name= FrmPic и Caption = «Диалоговые пиктограммы».
3. Открыть окно кода формы с событием click. Ввести следующий программный код:
Dim D as string
Dim m as string
Dim Vol, res as single
Vol = 1.56
If Vol> 1.44 then
D = “Операция записи не может быть продолжена.”
D = D + “ Диск переполнен”
res = MsgBox(D$, 16 + 2, "Ошибка записи")
If res = 4 Then
m = "Вставте новую дискету": m = m + Chr(10) + "Запись продолжить ?"
res = MsgBox(m, 64 + 4, "Повтор записи")
If res = 6 Then
End
Else
MsgBox "Сохраните файл на диске": End
End If
End If
End If
4
Рис.
10 Кнопки в окнах сообщений
5
6 . Завершить выполнение окна сообщений, нажав кнопку закрытия окна. Остановить исполнение приложения. Сохранить форму.
Упражнение 7 Виртуальная процедура записи данных.
1. В программном коде приложения предыдущего упражнения заменить процедуру Form_Click() на следующие строки:
Private Sub Form_Click()
Dim Vol, res As Single
Vol = 1.56
If Vol > 1.44 Then
D$ = "Операция записи не может быть продолжена."
D$ = D$ + " Диск переполнен"
res = MsgBox(D$, 16 + 2, "Ошибка записи")
If res = 4 Then
D$ = "Вставте новую дискету."
D$ = D$ + Chr$(10) + "Запись продолжить?"
res = MsgBox(D$, 64 + 4, "Повтор записи")
If res = 6 Then
End
Else
MsgBox "Сохраните файл на диске"
Header$ = "Ввод имени файла"
FileName$ = InputBox$("Задайте имя файла", Header$, "DD.doc", 0, 0)
Print FileName$
End If
End If
End If
End Sub
Заголовок (Header$) необходимо обязательно вставлять до вызова функции InputBox$. Кроме того, функция InputBox$() возвращает строку, а функция MsgBox() – значение типа Variant.
2 . Запустить приложение. При нажатии кнопки ОК окна «Сохранить файл на диске» появится окно ввода имени файла (рис. 12). При нажатии на кнопку Ok, содержимое текстового поля присваивается переменной (в нашем случае FileName). Если пользователь нажал кнопку Cancel, то возвращается строка нулевой длины
3. Завершить работу приложения. Сохранить проект.
Вопросы для самопроверки
-
Дать определение переменной. Её назначение.
-
Типы переменных.
-
Область видимости и время жизни переменных. Ключевое слово Static.
-
Массивы. Определение, назначение, задание массивов.
-
Использование массивов для хранения информации.
-
Понятие процедуры. Общие процедуры. Процедуры, управляемые событиями.
-
Области действия событийных и общих процедур.
-
Использование событийных процедур.
-
Создание новой общей процедуры.
-
Передача параметров
-
Процедуры – функции.
-
Назначение диалоговых окон.
-
Как осуществляется вывод сообщения ?
-
Чем отличается организация вывода сообщения функцией и оператором?
-
В чем заключается организация вывода содержательной части сообщения ?
-
Чем определяется вид диалогового окна сообщения?
-
Параметры и константы, определяющие вид окна сообщения.
-
Коды возврата диалоговых окон.
-
Диалоговые окна ввода информации.
-
Организация диалогового окна ввода информации.