Процедуры пользователя

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

Чтобы процедура пользователя была доступна на всех формах приложения, ее текст следует записать в специальном окне
Module - модуль приложения. Программный код такой процедуры будет храниться в файлах приложения с расширением *.bas.

Различают два типа пользовательских процедур:

• процедуры типа функция (Function), которые осуществляют действие, запрограммированное ее программным кодом. В результате выполненного действия в программу передается определенное значение;

• процедуры типа подпрограммы (Sub), результатом такой процедуры является только действие, определенное ее программным кодом.

Пользователь может задать свою функцию с помощью Function. Новая функция, принимая значения своих аргументов, возвращает некоторое значение. Функция пользователя - это программный блок, который имеет свое уникальное имя - идентификатор, включает группу операторов, обеспечивающих вычисление одного параметра или одного действия, определенного программным кодом. Синтаксис записи для Function следующий:

Function <Имя Функции> (<Аргумент1> As <тип> [ , <Аргумент2>As <тип> , ] ....) As <тип>

Аргумент 1, Аргумент 2 и т. д. - формальные параметры процедуры.

Например:

Function Vk (H As Single, R As Single) As Single
Vk = 3 .14 * H * R^2
End Function

Обращение в программном коде приложения к этой подпрограмме может быть следующим:

У = Vk (h, r)

В данном случае в скобках записаны фактические параметры. Они должны совпадать с формальными параметрами по типу, по количеству и по последовательности расположения. Идентификаторы параметров могут быть другими. В качестве фактических параметров могут быть использованы массивы, арифметические выражения, переменные и константы.

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

Например, в результате выполнения некоторой процедуры могут быть выполнены следующие действия:

• изменены свойства объектов;
• выведен результат вычислений в виде таблицы;
• результаты отображены в виде графика.

В связи с этим процедуру типа Sub нельзя использовать в каких-либо выражениях на месте переменной либо функции, а во всем остальном синтаксис аналогичен Function:

Sub <Имя Процедуры> (<Аргумент1> As <тип> [ , <Аргумент2> As <тип> , ] ....)