Для реализации алгоритмов с косвенной рекурсией в языке Delphi предусмотрена специальная директива предварительного описания подпрограмм forward. Предварительное описание состоит из заголовка подпрограммы и следующего за ним зарезервированного слова forward, например:
procedure Proc; forward;
function Func(X: Integer): Boolean; forward;
Заметим, что после такого первичного описания в полном описании процедуры или функции можно не указывать список формальных параметров и тип возвращаемого значения (для функции). Например:
procedure Proc2(<формальные параметры>); forward;
procedure Proc1;
begin
...
Proc2(<фактические параметры>);
...
end;
procedure Proc2; // Список формальных параметров опущен
begin
...
Proc1;
...
end;
begin
...
Proc1;
... end;