Delphi - 使用其他单元的接口

时间:2011-05-04 19:46:06

标签: 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;

在FSymbolDrawer中,我得到编译器错误。

当然我有抽屉用途;在定义TField的单元中。

这是关于什么的?

谢谢

2 个答案:

答案 0 :(得分:6)

在单位Drawers中,IDrawer的类型声明必须位于单位的界面部分。您已将其插入到实现部分中,它仅对单元内声明可见。

以下是代码:

unit Drawers;

interface

type

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

implementation

end.

答案 1 :(得分:1)

您将Drawers添加到哪个使用条款?它必须在interface uses子句中(在使用它的TField定义之上)。