私は Delphi 2006 でレコードのオーバーロード演算子を使用しています。
暗黙の演算子がオーバーロードされた 2 つのレコード型があります。どちらもモジュールの実装のみであり、インターフェースを通じて公開されません。
私の問題は、それらが相互に依存しているため、2 番目の型をコンパイラに宣言する方法がわからないことです。関数、プロシージャ、およびクラスでこれを行う方法は知っていますが、レコードについては知りません。
これは私がやろうとしていることの簡単な例です:
implementation
type
TMyRec1 = record
Field1 : Integer;
class operator Implicit(a: TMyRec2): TMyRec1; // <---- Undeclared Identifier here.
end;
TMyRec2 = record
Field2: Integer;
class operator Implicit(a: TMyRec1): TMyRec2;
end;
class operator TMyRec1.Implicit(a:TMyRec2): TMyRec1;
begin
Result.Field1 := a.Field2;
end;
class operator TMyRec2.Implicit(a:TMyRec2): TMyRec2;
begin
Result.Field2 := a.Field1;
end;