次のような実装が可能かどうかを知りたいです。
procedure waitandcall(time,@MyProcedureOrFunction)
作成した関数または手順を実行するのはどれですか?
それらがコールバックと呼ばれるかどうかはわかりません。
それは絶対に可能であり、関数の前に@も必要ありません。
実際、すべてのイベントはこれに基づいています。
関数/手順のタイプを定義することから始めます
type
TMyProc = procedure(Param1: Integer);
次に、プロシージャのシグネチャがタイプと一致する限り、どこでもプロシージャタイプを使用できます。
プレーンなプロシージャ/関数の代わりにオブジェクトメソッドを使用している場合は、次を使用する必要がありますof object
type
TMyMethod = procedure(Param1: Integer) of object;
内部からコールバックを呼び出すには、次のようなものを使用できます。
procedure DoAndCallBack(MyProc: TMyProc)
begin
MyProc(1);
end;
コールバックはまさにその名前であり、Delphi はコールバックの作成と呼び出しの両方を完全に行うことができます。関数ポインタとも呼ばれます。ドキュメントの手続き型を参照してください。