Пример.

Общие процедуры

Общая процедура – это подпрограмма. Она начинается оператором 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