13

オブジェクト全体を渡すのではなく、オブジェクト関数をパラメーターとしてプロシージャーに渡すことは可能ですか?

次のようなパブリック クラス パラメータとして定義された関数を含むレコード定義があります。

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

関数は次のようになります。

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

次に、クラス関数を呼び出すプロシージャを定義しGiveMeAValueたいのですが、レコード全体を渡したくありません。たとえば、次のようなことができますか。

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

もしそうなら、どうすれば関数をプロシージャパラメータとして正しく渡すことができますか?

4

1 に答える 1