|
[ Главная ] [ Статьи ] [ Для новичков ] [ Примеры ] [ Программы ] [ Microsoft Agent 2.0 ] [ Пособие ] [ Уроки ] [ Разное ] |
Совместное использование значений процедурамиИногда требуется разделять значения переменных между процедурами обработки событий. Например, если приложение выполняет вычисления, всегда используя одинаковую процентную ставку, ее значение должно быть доступно всем процедурам формы. Такие переменные называют переменными уровня формы или уровня модуля (form-level, module-level). На рис. 5-4 показаны области видимости для переменных в проекте Visual Basic с одной формой. Как и оператор Option Explicit, объявление переменных уровня формы происходит в разделе Declarations. Например, если открыто окно Code, можно выбрать (Declarations) для объекта (General) и ввести: Dim InterestRate As Currency
В принципе, для локальных переменных и переменных уровня формы можно использовать одинаковые имена, хотя это не совсем хорошая идея. Любой оператор Dim на уровне процедуры имеет преимущество перед аналогичным на уровне формы, поэтому такие переменные будут локальными. Но при этом теряется возможность использования информации, содержащейся в переменных уровня формы. То есть дублирование имен приводит к недоступности для процедуры значения переменной уровня формы. Visual Basic, в свою очередь, не сообщает об этом программисту. Вот еще одна причина, по которой рекомендуется явно объявлять локальные переменные при помощи оператора Dim.
Совет: Некоторые программисты любят использовать префикс f (например, flnterest) для переменных уровня формы, а букву g - при обозначении глобальных переменных (например, ginterest). Это позволяет распознавать область видимости для конкретной переменной буквально с одного взгляда. Зарезервированное слово Private. Visual Basic 5 использует это новое слово Private для обозначения переменных уровня формы. Private работает аналогично оператору Dim, и его можно использовать вместо этого оператора в разделе (General) для формы. Смысл состоит в том, чтобы отделить переменные уровня формы от так называемых глобальных (или public) переменных. Сохраняем значения Когда Visual Basic вызывает
процедуру обработки события, старые значения локальных переменных уничтожаются.
Они принимают значения по умолчанию. (Как часто отмечалось, лучше их проинициализировать
заново.) Такие переменные называются динамическими. Однако этого недостаточно
в некоторых ситуациях. Например, необходимо отследить, сколько раз была
нажата командная кнопка. Если счетчик будет все время сбрасываться, сосчитать
будет невозможно. В принципе, можно использовать для таких целей переменные
уровня формы, но лучше применять их только для обмена информацией. Большинство
программистов используют такой подход, только если необходимо считать и
другим процедурам.
Static Counter As Integer, IsVisibie As Boolean Ниже приведен пример процедуры обработки события с командной кнопкой, которая подсчитывает число щелчков и выводит суммарное значение: Private Sub Commandl_Click ( )
При первом щелчке счетчику
присваивается значение по умолчанию, то есть 0. Затем Visual Basic добавляет
к нему 1 и затем выводит результат.
Static Private Sub Commandl Click ()
Примечание: Переменные уровня формы и уровня модуля всегда сохраняют свои значения. Проблема состоит в том, что их может изменить любая процедура, а это может приводить к ошибкам. И когда необходимо сохранять значения переменных в перерывах между использованием процедуры, лучше применять статические переменные, чем переменные уровня формы или модуля. |
|
|
|
>>>Если у вас есть статья которой нет на сайте
пришлите ее мне--------> Послать статью >>>Если вы хотите задать вопрос пишите--------> Мне нужна помощь |
|
|
|