NOTES :
Cette méthode permet d'appeler que des méthodes publiées ( section published ), mais elle est trés pratique pour changer le traitement d'un programme en fonction des choix utilisateur.
// Le mot clef Published doit être ajouté manuellement Published { Déclarations publiques } // Les méthodes doivent absolument être publiées Function Additionner(x, y: Integer): Integer; Function Soustraire(x, y: Integer): Integer; Function Multiplier(x, y: Integer): Integer; End;
Var
Form1: TForm1;
Implementation
{$R *.dfm}
Function TForm1.Additionner(x, y: Integer): Integer; Begin
Result:=x+y; End;
Function TForm1.Soustraire(x, y: Integer): Integer; Begin
Result:=x-y; End;
Function TForm1.Multiplier(x, y: Integer): Integer; Begin
Result:=x*y; End;
Procedure TForm1.Button1Click(Sender: TObject); Var Proc:Function(x,y:Integer):Integer OfObject; Begin // La méthode est cherchée par son nom
@Proc:=MethodAddress(OP.Items[OP.ItemIndex]); If @Proc<>NilThen Begin // Si l'adresse est trouvée elle est appelée normalement
Resultat.Caption := (IntToStr(Proc(A.Value,B.Value))); EndElse Begin // Sinon erreur
ShowMessage('Méthode non trouvée !'); End; End;