Delphi 제한으로 인해 클래스로 변환 할 수없는 레코드가 있습니다 (모두 클래스 연산자를 사용하여 비교를 구현합니다). 하지만 내가 사용하는 레코드 유형을 모르는 클래스에 저장해야합니다. 이 같은델파이의 한계로 인해 여러 개의 다른 레코드를 함수에 전달하는 방법은 무엇입니까?
뭔가 :
type R1 = record
begin
x :Mytype;
class operator Equal(a,b:R1)
end;
type R2 = record
begin
y :Mytype;
class operator Equal(a,b:R2)
end;
type Rn = record
begin
z :Mytype;
class operator Equal(a,b:Rn)
end;
type TC = class
begin
x : TObject;
y : Mytype;
function payload (n:TObject)
end;
function TC.payload(n:TObject)
begin
x := n;
end;
program:
c : TC;
x : R1;
y : R2;
...
c := TC.Create():
n:=TOBject(x);
c.payload(n);
지금, 델파이는 TObject의 레코드에서 배역을 허용하지 않으며, 내가 인해 델파이 제한으로 그들에게 수업을 할 수 없습니다. 우리는 클래스와 마찬가지로
사람은, 함수에 다른 기록을 통과하고 필요시 자신의 유형을 인식 할 수있는 방법을 알고 :
if x is TMyClass then TMyClass(x) ...
을 ???
어떤 델파이 버전입니까? Delphi 2010은 레코드에 대해 RTTI를 지원합니다. –