Пример.
Общие процедуры
Общая процедура – это подпрограмма. Она начинается оператором Sub и заканчивается оператором End, между которыми и помещается код. Главное отличие общих процедур от процедур обработки событий заключается в том, что они начинают работать не в ответ на какое-то событие, а после явного их вызова из какого-то места программы. После выполнения такой процедуры происходит автоматический возврат в то место программы, откуда процедура была вызвана.
Общая процедура – это обособленная часть программы, выполняющая типичное действие для данной программы. Что значит типичное действие? Оно может совершаться на разных этапах выполнения программы, и оно упоминается в разных ее местах.
Каждой вызываемой процедуре присваивается уникальное название – имя процедуры.
Кроме того, для процедуры четко устанавливается перечень входных и выходных данных, то есть входных и выходных параметров.
Входной параметр – это переменная, значение которой должно быть установлено до начала работы процедуры и которая участвует в работе процедуры.
Выходной параметр – это переменная, которая получает свое значение в результате работы процедуры.
Синтаксис написания процедуры:
[Область видимости] [Static] Sub имя процедуры (список параметров)
Выполняемые операторы
End Sub
Область видимости – это одно из двух ключевых слов: Public или Private. Они устанавливают, к какому классу принадлежит процедура – к классу глобальных или к классу локальных процедур. Локальная процедура доступна только внутри данного модуля, глобальная процедура может быть вызвана из других модулей. Если Область видимости явно не указана, то по умолчанию процедура будет отнесена к классу Public.
Наличие или отсутствие ключевого слова Static говорит о статусе локальных переменных, то есть переменных, объявленных внутри этой процедуры. При наличии этого слова локальные переменные будут сохранять свои значения между последовательными вызовами этой процедуры.
Список параметров – это переменные, которые играют роль входных и выходных параметров процедуры.
Вызов процедуры из процедуры обработки события осуществляется с помощью оператора Call. Его синтаксис:
Call имя процедуры (список параметров)
Составим программу рисования уменьшающихся концентрических окружностей в форме при нажатии кнопки «Пуск». При этом радиус каждой последующей из них равен 9/10 радиуса предыдущей. Рисование прекращается, когда радиус очередной окружности становится равным некоторой заданной величине Rmin.
Dim r, rmin As Single
Private Sub Command1_Click()
Form1.Scale (-10, 10)-(10, -10)
r = 8
rmin = 1
Do While r > rmin
Call okr(r, rmin)
Loop
End Sub
Public Sub okr(a, b)
If a > b Then
Form1.Circle (0, 0), a
a = a * 0.9
End If
End Sub