我写了两个类 A,B 分别在 A.PAS ,B.PAS单元中
其中
A.pas
uses B而B.pas uses A
我知道把其中一个引用放在implementation下面就可以,但是问题是类A在interface的下面定义了一些成员方法,而这些成员方法的一些参数需要引用类B,而如果把Uses B放在
implementation下面,编译时系统报类B没有定义(找不到),估计是把Uses B放在
implementation下面时类A的成员方法都在 Uses B 语句的上面,编译时先编译了成员方法在编译引用语句所至。请教各位高手有什么解决方法-我的类A和类B都必须互相引用,而且各自的成员方法都在interface下并引用了类B。另外,我希望类似JAVA那样,一个类一个文件,上述问题如果把两个类放在一个unit单元内就可以解决。
其中
A.pas
uses B而B.pas uses A
我知道把其中一个引用放在implementation下面就可以,但是问题是类A在interface的下面定义了一些成员方法,而这些成员方法的一些参数需要引用类B,而如果把Uses B放在
implementation下面,编译时系统报类B没有定义(找不到),估计是把Uses B放在
implementation下面时类A的成员方法都在 Uses B 语句的上面,编译时先编译了成员方法在编译引用语句所至。请教各位高手有什么解决方法-我的类A和类B都必须互相引用,而且各自的成员方法都在interface下并引用了类B。另外,我希望类似JAVA那样,一个类一个文件,上述问题如果把两个类放在一个unit单元内就可以解决。
解决方案 »
- 在dbgrid中修改的问题
- 各位,谁能给我一套Delphi的面试题呀,主要是数据库,和Socket方面的
- 数据采集卡编程,请求指导
- 关于Excel的问题:怎样用程序改变Cell的颜色?
- 终于决定暂时告别论坛了。云淡风清散分贴(2)
- 调用 libeay32.dll 的奇怪问题[Delphi7]
- 请问怎样设计工作区的大小?(分不够再加,决不食言)
- 简单问题,在线等待
- 个位高手,这次求助是因为时间太紧张只好找人帮忙。要用delphi编写库存系统。请进入。
- 看了老鱼的帖子,觉得CSDN确实是不值得再来了,既然你们想要分,那么我就不回答任何问题,每天散分,散完后就永远也不来CSDN了-----------------X度空间
- 我用DelPhi在原公司开发医院管理系统.....
- 开发Com+组件并安装后,在组件服务里的对象池选项是灰的,如何启用?
interface下面引用
interface下面引用就是会引起循环引用的错误啊!
CCtrl = class; CCtrl = class
private
FCunrrentThreadCount: integer;
FCunrrentReceiveThreadCount: CMission;
implementationend.
_____________________________________-
unit Unit3;interfacetype
CMission = class
public
MissionID: integer;
CNews : CCtrl;
end;
implementationuses unit2end.
这时 CNews : CCtrl;会报错,因为uses unit2是在implementation下面,根本找不到unit2中定义的CCtrl类,放在interface下面uses unit2可以找到CCtrl,但是会引起循环引用错误,怎么解决?
private
FCunrrentThreadCount: integer;
FCunrrentReceiveThreadCount: CMission;
end; CMission = class
public
MissionID: integer;
CNews : CCtrl;
end; TForm1 = class(TForm)
Button1: TButton;
private
{ Private declarations }
public
{ Public declarations }
end;
希望类似JAVA那样,一个类一个文件
也可以把它写到.inc文件中,调用时候用{$I xxx.inc}