オブジェクト全体を渡すのではなく、オブジェクト関数をパラメーターとしてプロシージャーに渡すことは可能ですか?
次のようなパブリック クラス パラメータとして定義された関数を含むレコード定義があります。
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;
もしそうなら、どうすれば関数をプロシージャパラメータとして正しく渡すことができますか?