2013-10-14 1 views
2

Delphi XE2를 사용하고 있습니다. Delphi가 레코드 유형에 대한 정방향 참조를 지원하지 않기 때문에 형식화되지 않은 매개 변수를 사용하기 시작했습니다.Delphi -> 형식이 지정되지 않은 매개 변수에서 레코드 유형을 얻습니다.

유형이 지정되지 않은 매개 변수의 유형은 어떻게 얻을 수 있습니까?

procedure TSomeRecord.TransformBy(const AUntypedParam); 
begin 
// how can I ensure that **AUntypedParam** is of a specific record type? 

나는 AUntypedParam 그렇지 않으면 예외가 발생한다, 특정 유형의이 있는지 확인해야합니다. 감사합니다.

+0

레코드에 서명을 추가하십시오. –

+0

아직까지 레코드 도우미를 사용하여 전달 레코드 참조를 선언 할 수 없음을 피할 수 있어야합니다. –

+0

예, 레코드 헬퍼가이 문제를 해결하는 방법입니다. –

답변

2

AUntypedParam이 특정 레코드 유형인지 어떻게 확인할 수 있습니까?

수 없습니다. 이것은 타입이 지정되지 않은 매개 변수를 조작하는 방식입니다. 컴파일러에게 말하면 실제 매개 변수의 유형을 확인하지 마십시오. 컴파일러는 당신의 말로 당신을 데려가 원하는대로 전달할 수 있습니다. 당신은 두 가지 방법 모두 가질 수 없습니다.


@LURD은 기민이 컴파일러 제한을 해결하기 위해 기록 도우미를 사용할 수 있음을 지적한다. Embarcadero의 누군가가 Stack Overflow에 관한 질문을 읽길 바랍니다. 지난 주에 세 번째 또는 네 번째 시간이어야합니다. 확장 된 레코드의 한계로 인해 질문이있었습니다.