12

次のような実装が可能かどうかを知りたいです。

procedure waitandcall(time,@MyProcedureOrFunction)

作成した関数または手順を実行するのはどれですか?

それらがコールバックと呼ばれるかどうかはわかりません。

4

2 に答える 2

25

それは絶対に可能であり、関数の前に@も必要ありません。

実際、すべてのイベントはこれに基づいています。

関数/手順のタイプを定義することから始めます

type
  TMyProc = procedure(Param1: Integer);

次に、プロシージャのシグネチャがタイプと一致する限り、どこでもプロシージャタイプを使用できます。

プレーンなプロシージャ/関数の代わりにオブジェクトメソッドを使用している場合は、次を使用する必要がありますof object

type
  TMyMethod = procedure(Param1: Integer) of object;

内部からコールバックを呼び出すには、次のようなものを使用できます。

procedure DoAndCallBack(MyProc: TMyProc)
begin
  MyProc(1);
end;
于 2012-12-28T05:18:15.783 に答える
5

コールバックはまさに​​その名前であり、Delphi はコールバックの作成と呼び出しの両方を完全に行うことができます。関数ポインタとも呼ばれます。ドキュメントの手続き型を参照してください。

于 2012-12-28T05:16:44.623 に答える