Como definir operadores de conversão implícitos para registros mutuamente dependente
Estou usando o operador sobrecarregando os registros no Delphi 2006. (Por favor, não responda a essa pergunta dizendo para não fazê-lo.)
Tenho dois tipos de registro com oimplícit operador sobrecarregado. Ambos são apenas na implementação do módulo, não expostos pela interface.
Meu problema é que, agora que eles são mutuamente dependentes, não sei como encaminhar o segundo tipo para o compilador. Eu sei como fazer isso com funções, procedimentos e classes, mas não com registro
qui está um exemplo simplificado do que estou tentando faze
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;