Comment Passer des Fonctions en tant que Paramètres dans les Procédures en Delphi?

Est-il possible de passer un objet en fonction d'un paramètre dans une procédure plutôt que de passer l'ensemble de l'objet?

J'ai une définition de l'enregistrement avec une fonction définie comme une classe publique de paramètres tels que:

    TMyRecord = record
      public
        class function New(const a, b: Integer): TMyRecord; static;
        function GiveMeAValue(inputValue: integer): Single;
      public
        a, b: Integer;
      end;

La fonction pourrait être quelque chose comme:

    function TMyRecord.GiveMeAValue(inputValue: Integer): Single;
    begin
      RESULT := inputValue/(self.a + self.b);
    end;

Ensuite, je souhaite définir une procédure qui appelle la fonction de classe GiveMeAValue mais je ne veux pas passer l'ensemble de l'enregistrement. Puis-je faire quelque chose comme ceci, par exemple:

    Procedure DoSomething(var1: Single; var2, var3: Integer, ?TMyRecord.GiveMeAValue?);
    begin
      var1 = ?TMyRecord.GiveMeAValue?(var2 + var3);
      //Do Some Other Stuff
    end;

Si oui, alors comment pourrais-je passer correctement la fonction en tant que paramètre de la procédure?

OriginalL'auteur Trojanian | 2013-11-05