2011-05-04 7 views
3

나는 다음과 같은 것을 끊임없이 얻고 있습니다. 다른 장치에서 정의한 인터페이스 유형에 대한 선언되지 않은 식별자. 여기 내가 무엇을 가지고 : FSymbolDrawer에서Delphi - 다른 장치의 인터페이스 사용

unit Drawers; 

interface 

implementation 

type 

    IDrawer = interface 
    ['{070B4742-89C6-4A69-80E2-9441F170F876}'] 
    procedure Draw(); 
    end; 

end. 

unit Field; 

interface 

uses 
    Graphics, Classes, Drawers; 

TField = class(TInterfacedObject, IField) 
private 
    FSymbolDrawer: IDrawer; 

내가 컴파일러 오류가 발생합니다.

물론 나는 드로어를 사용합니다. TField가 정의 된 단위.

이 내용은 무엇인가요?

는 당신에게 당신이 Drawers를 추가하려면 절을 사용

답변

6

Drawers의 유형 선언은 IDrawer의 형식 선언은 장치의 인터페이스 부분에 있어야합니다. 유닛 내부 선언에서만 볼 수있는 구현 부분에 삽입했습니다. 내가 사용하는 정의를 추가 한

unit Drawers; 

interface 

type 

    IDrawer = interface 
    ['{070B4742-89C6-4A69-80E2-9441F170F876}'] 
    procedure Draw(); 
    end; 

implementation 

end. 
+1

나는 이것을 간과했다고 믿을 수 없다. 나는 지금 자러 가야한다. 고맙습니다. – elector

+0

@elector : 안녕히 주무세요! 수면 잘 ;-) –

+0

잘 잡으세요! 나는 완전히 그것을 놓쳤다 - 나는 그것이'unit'에 뒤따 랐기 때문에 인터페이스를 자동으로 읽었다 고 생각한다. +1 –

1

감사? interface uses 절 (사용하는 TField 정의 위)에 있어야합니다.

+0

: 여기

는 코드입니다. 고마워. – elector

관련 문제