在一个单元中定义的记录类型在另一个单元中为什么不能用?(100分)

  • 主题发起人 主题发起人 johnliujun
  • 开始时间 开始时间
J

johnliujun

Unregistered / Unconfirmed
GUEST, unregistred user!
在Unit1
中定义了一个记录类型
TFieldItem=Record
。。。

在Unit2的(已经引用了Unit1)中声明一个
该记录类型的数组
aryFieldItem:Array of TFieldItem
编译时说不认识TFieldItem
 
你的这个声明
aryFieldItem:Array of TFieldItem
是在uses Unit1 之前声明的吧?
这肯定不行了!
 
同意pazee的观点,在Unit2的interface部分的uses子句中加入Unit1看看,
不要加在了implementation部分.
 
你应加在最上面。
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, OleCtrls, MSCommLib_TLB;

type aa=record
...
end;

type
TForm1 = class(TForm)
 
是啊加在interface部分
 
我以为这样更好:

定义一个单元,该单元用于定义全局变量和数据结构类型,如江维所说要加在
interface部分,其它单元 uses it, ok.
好处是:避免了单元的相互引用,更易理解使用。
 
同意wjs的说法,把数据结构定义为一个单元,从File->New->Unit定义。
并且注意你的uses的声明处,安全起见加入那一大串uses中去。
 
多人接受答案了。
 
后退
顶部