Описание функции ничем не отличается от описания процедуры, но в теле функции возвращаемое значение должно быть присвоено идентификатору функции или предопределённой переменной result.
В последних версиях Delphiвозвращать значение можно с помощью процедуры ехк(значение).
Для примера напишем функцию, вычисляющую факториал числа n.
function fact(n: integer): integer; // Заголовок функции var
// Объявления локальных переменных
f,i: integer; begin f:= n; for i:= n-1 downto 2 do f:= f*i; fact:= f; // Возвращаемое значение
//или
//result:= f;
//или
//exit(f);
end; // Конец функции
Если вы не вернули значение функции ни одним из описанных способов, то её значение будет неопределённым!
В процедурах и функциях могут быть объявлены и описаны другие процедуры и функции, которые являются локальными, то есть могут использоваться только там, где они объявлены.