En Delphi, tipos de procedimiento (punteros de método) le permiten tratar los procedimientos y funciones como valores que pueden asignarse a variables o pasarse a otros procedimientos y funciones.
Aquí se explica cómo llamar a una función (o procedimiento) como parámetro de otra función (o procedimiento):
tipo
TFunctionParameter = función(const valor: entero): cuerda;
función Uno(const valor: entero): cuerda;empezar
resultado: = IntToStr (valor);
final;
función Dos(const valor: entero): cuerda;empezar
resultado: = IntToStr (2 * valor);
final;
función DynamicFunction (f: TFunctionParameter): cuerda;empezar
resultado: = f (2006);
final;
// Ejemplo de uso:
var
s: cadena;
empezar
s: = DynamicFunction (uno);
ShowMessage (s); // mostrará "2006"
s: = DynamicFunction (dos);
ShowMessage (s); // mostrará "4012"final;