Процедурные типы

Стандартный Pascal обрабатывает процедуры и функции только как части программы, которые могут быть выполнены через обращение к процедуре или функции.

Borland Pascal имеет намного более широкую область применения процедур и функций. С помощью процедурных типов можно расценивать процедуры и функции как объекты, которые могут быть назначены переменным и переданы как параметры.

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

Синтаксис объявления процедурного типа идентичен заголовку процедуры или функции, за исключением того, что можно опускать идентификаторы после ключевого слова Procedure или Function.

Имена параметров в объявлении процедурного типа не влияют на значение объявления.

Borland Pascal не позволяет вам объявлять функции, которые возвращают значения процедурного типа.

Результат функции должен иметь тип String, Real, Integer, Char, Boolean, Pointer или определенный пользователем перечислимый тип.

Пример
   Type Proc = Procedure;
    SwapProc = Procedure(Var X, Y : Integer);
     StrProc = Procedure(S : String);
    MathFunc = Function(X : Real) : Real;
  DeviceFunc = Function(Var F : Text) : Integer;
     MaxFunc = Function(A, B : Real; F : MathFunc) : Real;

См. также  Константы процедурного типа.