レコードと、互いに使用するいくつかのオブジェクトイベントを宣言する方法を理解しようとしています。問題はどのように宣言しても、私は「宣言されていない識別子」を持っています。レコードをパラメータとして使用するイベントを含むレコードを宣言する方法
以下のコードでは、それらをお互いに使うことができますか?イベントはオブジェクトで使用され、レコードはオブジェクトのコンストラクタに渡されて使用されます。
TMyEvent = procedure(Sender: TObject; var Rec: TMyRecord) of object;
TMyRecord = record
OnMyEvent: TMyEvent;
end;
これは可能ですか? Delphi 7以上のすべてのバージョンで動作する必要があります。私の知っている唯一の方法は、ポインタを使用することですので
+1です。 BTW:あなたのイベント処理コードが新しいレコードを割り当てて、それを 'Rec'に割り当てる場合を除き、Rec:PMyRecordの前のvarは必要ありません。オブジェクトを渡すときと同じです。たとえば、 'TStringList'を手続きに渡して追加の文字列を追加する場合は、' var SList:TStringList'を使う必要はありませんが、 'const SList:TStringList'を使うことができます。 –
@jerryあなたはあまりにも速く答えを受け入れました –
@DavidHeffernan私はそれが私の問題を完全に解決したと思います。ちょうど7までのすべてのバージョンとの互換性について何も言及していませんでした。 –