Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VB_6.doc
Скачиваний:
97
Добавлен:
01.12.2018
Размер:
3.77 Mб
Скачать

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

Программы VB хранятся в модулях. Существует три вида модулей:

модуль формы, стандартный модуль и модуль класса. Модулем формы является окно кода формы. Простое приложение состоит из одного модуля формы и весь код приложения хранится в нём. Со временем обнаруживается, что в приложении образовался некоторый общий программный код, выполняемый в нескольких модулях форм. Дублирование этого кода в каждом модуле формы нецелесообразно. Поэтому создаётся отдельный модуль, содержащий процедуру, выполняющую этот общий код. Такой модуль называется стандартным модулем. Модули форм хранятся в файлах с расширением frm и являются основой большинства приложений VB. Они могут состоять из процедур обработки событий, процедур общего характера, объявлений констант, переменных и внешних процедур, используемых на уровне модуля формы. Код, создаваемый в модуле формы, относится только к приложению, к которому принадлежит форма, но в нём можно сослаться на другие формы и объекты данного приложения.

В зависимости от того, где и как объявлена переменная, она может быть доступна в разных местах кода программы. Часть кода, которая “знает” о существовании данной переменной называется областью видимости этой переменной или областью доступности переменной. Области видимости переменной ограничиваются либо уровнем процедуры, либо уровнем модуля, либо уровнем приложения в целом.

Переменные уровня процедуры (локальные переменные) распознаются только в той процедуре, в которой они объявлены. Их объявлют операторами Dim или Static:

Private Sub Command1_Click() Private Sub Command1_Click()

Dim n% Static n%

n = n*(n+1) n = n*(n+1)

End Sub End Sub

Значения локальных переменных, объявленных в операторе Static, сохраняются в течение всего времени выполнения приложения, тогда как переменные, объявленные в операторе Dim, существуют только в течение времени выполнения процедуры. При очередном вызове процедуры они будут неопределенны. Локальные переменные удобны для промежуточных вычислений. Можно создать несколько процедур, содержащих переменную n. Если в каждой процедуре переменная n объявлена как локальная, то каждая процедура работает со своей переменной n. Любая процедура может изменить значение своей переменной n, что никак не скажется на значениях переменных n в других процедурах.

Иногда требуется использовать переменную с более широкой областью видимости, например, переменную, значение которой доступно для всех процедур какого-либо одного модуля или даже для всех процедур приложения.

По умолчанию переменная уровня модуля доступна всем процедурам этого модуля, но недоступна процедурам других модулей приложения. Переменная уровня модуля объявляется с помощью оператора Private в разделе General модуля. Сделать переменные уровня модуля доступными для других модулей можно, объявив их при помощи оператора Public. Их объявления так же, как и объявления переменных уровня модуля, располагают в разделе General. Такие переменные называют открытыми или общедоступными. Если открытые переменные объявленные в разных модулях имеют одно и тоже имя, то их можно различать в программном коде, ссылаясь на них с использование имени соответствующего модуля и имени самой переменной. Например, если открытые переменные m объявлены в модулях Form1 и Module1 , то ссылаться на них можно с использованием нотации с точкой: Form1.m и Module1.m.

Таким образом:

  1. Переменные, объявленные оператором Public в разделе General стандартного модуля, доступны в любой процедуре приложения.

  2. Переменные, объявление оператором Private в разделе General стандартного модуля, доступны в любой процедуре только этого модуля.

  3. Переменные, объявленные оператором Public в разделе

General формы, доступны в любой процедуре этой формы, а также

в любых процедурах других форм приложения, но с указанием

имени формы, на которой они объявлены.

  1. Переменные, объявление оператором Private в разделе General формы, доступны в любой процедуре только этой формы.

  2. Переменные, объявленные оператором Dim внутри процедуры (локальные переменные), доступны только в этой процедуре.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]