Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
В VISAUL BASIC есть три вида областей определения, характеризующих доступность переменной:
· локальная: переменная доступна только в текущей процедуре;
· контейнера: переменная доступна только в текущей форме, модуле или классе;
· глобальная: переменная доступна во всем проекте.
Локальные переменные
Локальными называются переменные, определяемые внутри процедуры или функции. Они доступны только внутри этой процедуры.
Так как локальная переменная A (см. рис. 2.20) объявляется оператором Dim в соответствующей процедуре, она доступна внутри только этой процедуры. Поэтому не возникает конфликтов при использовании разными процедурами переменных с одним и тем же
Form Module
Рис. 2.20. Область определения локальных переменных:
При выходе из процедуры все ее локальные переменные сразу же удаляются из памяти, а при новом вызове этой процедуры переменные создаются вновь.
Переменные контейнера
Переменные контейнера определяются в секции
(General) (Declarations) с помощью оператора Dim и доступны только внутри соответствующего контейнера, т.е. формы, модуля или класса (см. рис. 2.21).
Рис. 2.21. Область определения переменных контейнера:
Глобальные переменные
Глобальные переменные определяются в секции
(General) (Declarations) модуля. При этом вместо оператора Dim используется Public. Глобальные переменные доступны во всех модулях и процедурах проекта (см. рис.2.22).
Локально объявленные переменные при выходе из процедуры удаляются из памяти, а при новом вызове процедуры инициализируются заново. Их содержимое при этом не сохраняется, что не всегда желательно. Этого можно избежать путем расширения области определения, т.е. объявив переменную глобальной или, как минимум переменной контейнера. Но это разрешает доступ к переменной из других процедур.
Form Module
VISAUL BASIC дает возможность объявлять переменные как статические. При выходе из процедуры содержимое статической переменной сохраняется. При новом вызове этой процедуры переменной присваивается значение, которое она имела при последнем выходе из этой процедуры. Содержимое переменной сохраняется в течение всего времени, пока существует в памяти форма или модуль.
Объявление переменной как статической:
Static Имя_переменной [As Тип_переменной ]
Пример:
Private Sub Command1_Click()
Static a As Integer
Dim b As Integer
a=a+1
b=b+1
Print a
Print b
End Sub
Статическая переменная a при каждом щелчке на кнопке Command1 увеличивается на 1. Нестатическая переменная b при каждом щелчке инициализируется заново, поэтому ее значение при выходе всегда равно 1.
Чтобы объявить статическими все локальные переменные процедуры, следует записать ключевое слово Static в заголовке процедуры.
Полное описание общей процедуры:
[ ОбластьВидимости ] [ Static ] Sub имяПроцедуры (СписокПараметров)
Операторы
Дата публикования: 2014-11-02; Прочитано: 397 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!