Pointeur de fonction (délégués)

Les délégués définissent des types destinés à héberger des pointeurs vers des fonctions ou méthode.

Déclaration

Les pointeurs de fonctions sont déclarés comme suit:

type
   TNomDelegue = procedure|function [(...parametres...)] [: TypeResultat];

Ils permettent de spécifier une fonction en tant que variable ou paramètre.

Par exemple:

type TSalutation = procedure (nom : String);

procedure Bonjour(nom : String);
begin
   PrintLn('Bonjour '+nom+'!');
end;

procedure AuRevoir(nom : String);
begin
   PrintLn('Au revoir '+nom+'.');
end;

var fn : TSalutation;

fn:=Bonjour;

fn('Albert');

fn:=AuRevoir;

fn('Albert');