Процедуры Sub -не возвращают значение в вызывающую
процедуру.
Процедуры (подпрограммы) - это логически
построенные, небольшие программные блоки, на которые
делится вся программа.
Если процедура может выполнятся только внутри данного
программного блока (например, только в этой ФОРМЕ), и её
нельзя вызвать из другого программного блока, то
такая процедура является локальной.
Локальная процедура задается с помощью ключевого
слова Private Sub
Если процедуру можно вызвать из других программных
блоков (например из другой ФОРМЫ), то такая процедура
является глобальной.
Глобальная процедура задается с помощью ключевого
слова Public Sub.
По умолчанию, если перед ключевым словом Sub,
отсутствует ключевое слово, то эта глобальная процедура.
Процедуры бывают:
СОБЫТИЙНЫЕ и ОБЩИЕ.
Событийная процедура -
подпрограмма, которая начинает выполняться после
достижения какого то события (например, при щелчке по
кнопке появляется картина).
Событийная процедура всегда связана с каким то
ОБЪЕКТОМ.
Чтобы вызвать событийную процедуру ОБЪЕКТА,
достаточно по этому ОБЪЕКТУ сделать двойной левый
щелчок.
Событийные процедуры
бывают и локальные, и глобальные.
Каждая событийная процедура имеет вид:
Локальная |
Глобальная |
Private Sub ОБЪЕКТ1_СОБЫТИЕ ()
ОБЪЕКТ2. Свойство = ЗначениеСвойства
ОБЪЕКТ3. Метод арг1:=знач, арг2:=знач
и т.д.
End Sub |
Public Sub ОБЪЕКТ1_СОБЫТИЕ ()
ОБЪЕКТ2. Свойство = ЗначениеСвойства
ОБЪЕКТ3. Метод арг1:=знач, арг2:=знач
и т.д.
End Sub |
Общая процедура -
представляет собой подпрограмму, которая начинает
выполняться после её вызова из другой процедуры.
Если в программе во всех ФОРМАХ встречается один и тот
же программный блок, то его можно записать только один
раз и в одном месте, в виде глобальной общей программы.
Запуск общей программы не связана с ОБЪЕКТОМ и с
СОБЫТИЕМ, а происходит, когда к нему обращаются из
других программных блоков.
Вызов общей процедуры из той же ФОРМЫ: Call
ИмяПроцедуры (СписокПараметров)
Вызов общей процедуры из другой ФОРМЫ: Call ОБЪЕКТ.
ИмяПроцедуры (СписокПараметров)
Можно просто без оператора Call.
Общая процедура бывает
и локальной Private и глобальной Public
Локальная |
Глобальная |
Private Sub Имя Процедуры (Список
Параметров
программный код (операторы)
End Sub |
Public Sub Имя Процедуры (Список
Параметров)
программный код (операторы)
End Sub |
Пример использования событийной и общей подпрограммы в
одной программе.
Private Sub Command1 Click()
E = (Val (Text1.Text) * (Val (Text2.Text) ^ 2)) /
2 Then
X = «Ваш ответ верный E=m*v^2/2»
Call сравнение (E, X)
End Sub
------------------
Примечание:
Call сравнение (E, X) - обращается в глобальную общую
процедуру, которая дана ниже.
Public Sub сравнение (E, X)
If E
= 0 Then
Text4.Text "Ваш ответ не верный, возможно, не все
данные ввели"
ElseIf
E = Val (Text3.Text) Then
Text4.Text = X
Else
Text4.Text = «Ваш ответ
неверный. Чтобы вернуться к теории щелкни по кнопке
ТЕОРИЯ»
End If
End Sub
ПРИМЕР ПРОГРАММЫ 20 КБ.
Есть ещё процедуры Function, которые
возвращают значение в вызывающую процедуру.
Локальная |
Глобальная |
Private Function Имя Процедуры (аргументы)
программный код (операторы)
End Function |
Public Function Имя Процедуры (аргументы)
программный код (операторы)
End Function |
ВВЕРХ |