Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Область видимости переменных






Переменные, с которыми нам приходилось иметь дело до сих пор, объявлялись словом Dim (сокращение от Dimension, то есть «размерность»). Оно объявнную в процедуре. При этом обращаться к такой переменной можно лишь из той же процедуры. Другими словами, вы не сможете определить или задать ее значение из другой процедуры, находящейся в той же или другой форме или в стандартном модуле.

Такие переменные называются локальными (то есть видимыми только в данной процедуре). Чтобы переменная была видна на уровне модуля, ее необходимо объявить несколько иначе. Во-первых, объявление должно находиться в секции (General) (Declarations) формы или стандартного модуля. Во-вторых, вместо Dim используется ключевое слово Private (хотя Dim также поддерживается для обеспечения совместимости с более ранними версиями Visual Basic). Объявленная таким способом переменная доступна на уровне модуля, и к ней можно обращаться из любой процедуры данного модуля — ее область видимости шире, чем у локальных переменных (рис. 7.6).

Projectl.Vbp

Рис. 7.6. Область видимости переменных

 

Кроме того, переменная может быть доступна на уровне всего приложения. Такие переменные часто называются открытыми, или глобалъными. Они объявляются в секции (General)(Declarations), но вместо Dim или Private используется ключе-вое слово Global. Обычно в таких случаях в проект включается стандартный модуль с расширением.BAS, а все глобальные переменные помещаются в его секцию объявлений.

Чтобы лучше понять, чем отличаются области видимости, рассмотрим следующий пример:

1. Создайте новый проект.

2. В окне Project Wizard выберите значок Standard EXE.

3. Добавьте в проект модуль — для этого следует щелкнуть правой кнопкой мыши в окне проекта и выбрать из контекстного меню команду Add > Module.

4. В диалоговом окне Add Module выберите значок Module. Созданный модуль Module1 открывается в окне программы.

5. В окне программы добавьте следующий фрагмент:

 

Option Explicit

Global UserID As String

Global ACL As Integer

 

6. Добавьте в модуль Module1 следующую процедуру:

 

Public Sub InitApp()

UserID = " Джо"

ACL = 255

End Sub

 

Прежде чем идти дальше, давайте повнимательнее рассмотрим два последних шага. Объявление переменных UserID и ACL c ключевым словом Global позволяет обратиться к ним из любой процедуры или модуля данного приложения. Поскольку функция InitApp находится внутри модуля и сопровождается ключевым словом Public, она является глобальной и может быть вызвана из любой процедуры приложения. В ней происходит инициализация приложения — переменной UserID присваивается значение " Джо", а переменной ACL — 255. Теперь давайте создадим форму для регистрации пользователя:

1. Дважды щелкните на форме Form1 в окне проекта, чтобы активизировать ее в конструкторе форм.

2. В окне свойств задайте свойству Name формы Form1 значение frmLogon, а свойству Caption — значение Регистрация пользователя.

3. Создайте на форме надпись. Задайте свойству Name значение lblUserID, а свойству Caption — Имя пользователя:.

4. Создайте под lblUserID еще одну надпись, задайте свойству Name значение

lblPassword, а свойству Caption — значение Пароль:.

5. Добавьте текстовое поле справа от первой надписи и задайте его свойству Name значение txtUserID.

6. Добавьте текстовое поле справа от второй надписи. В окне свойств задайте его свойству Name значение txtPassword, а свойству PasswordChar — символ «звездочка» (*).

7. Разместите кнопку в середине нижней части формы. Задайте ее свойству Name значение cmdLogon, а свойству Caption — значение & Регистрация.

После того как на форме появятся все перечисленные элементы, она должна выглядеть примерно так, как показано на рис. 7.7.

 

Рис. 7. 7. Форма для регистрации пользователей

 

8. Откройте окно программы двойным щелчком на форме Form1.

9. Расположите курсор слева от строки Option Explicit секции (General)(Decla-rations) формы Form1.

10. Дважды нажмите на клавишу Enter, чтобы вставить перед Option Explicit две пустые строки.

11. Введите следующую строку над Орtion Explicit:

 

Private Password As String

 

12. Откройте процедуру события Load формы и добавьте следующий фрагмент:

 

Private Sub Form_Load()

InitApp

txtUderID.Text = UserID

txtPassword.Text = " "

End Sub

 

13. В окне программы откройте процедуру события Click кнопки cmdLogon и добавьте в нее следующий фрагмент:

 

Private Sub cmdLogon_Click()

Dim msg As String

UsertID = txtUser.Text

Password = txtPassword.Text

 

msg = " Имя пользователя: " & UserID & Chr$(13)

msg = msg & " Пароль: " & Password & Chr$(13)

msg = msg & " ACL: " & Str$(ACL)

End Sub

 

14. Запустите программу командой Run > Start.

Обратите внимание на то, что в поле Имя пользователя содержится имя «Джо». Это значение было взято из глобальной строковой переменной с именем UserID. Переменная не объявляется в процедуре события Form_Load, она объявлена глобальной в модуле Module1.

Переменная для хранения пароля также заслуживает внимания. Она была объявлена в секции (General)(Declarations) формы. Обращаться к ней могут только функции данной формы. Это важно, потому что остальная часть программы не имеет права изменять пароль пользователя. Говорят, что переменная пароля доступна лишь в модуле формы.

Введите любой текст в поле Пароль: и нажмите кнопку Регистрация. Процедура события Click использует переменные модуля и глобальные переменные для отображения информации о пользователе.

 


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.014 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал