Z zlmark Unregistered / Unconfirmed GUEST, unregistred user! 2002-02-05 #1 在delphi代码文件中第一个uses和impletation后的uses有什么不同?
C cxx1997 Unregistered / Unconfirmed GUEST, unregistred user! 2002-02-05 #3 uses widows procedure a:tbitmap; //此时是正确的 impletation uses widows //如果写在这里,上面的的函数编译就会找不到tbitmap 如果单元AA use BB 而且BB 也use AA ,那么你必须将其中一个放在impletation后面引用
uses widows procedure a:tbitmap; //此时是正确的 impletation uses widows //如果写在这里,上面的的函数编译就会找不到tbitmap 如果单元AA use BB 而且BB 也use AA ,那么你必须将其中一个放在impletation后面引用
M mat Unregistered / Unconfirmed GUEST, unregistred user! 2002-02-05 #4 DELPHI在使用变量的之前需要先声明。第一个USES中定义的一系列系统单元,如Forms 等如果放在第二个USES中将导致TFORM类找不到,看一下类的继承就可以知道,TFORM类是 在FORMS类中定义的。 其他的一些类的单元定义也类似。因为有很多如CONTROLS等类中定义了很多常用的控件, 所以系统将默认添加。 所以第一个USES和第二个USES其实没什么不同,唯一的不同是在第二个USES前系统将定义一 大堆东西。
DELPHI在使用变量的之前需要先声明。第一个USES中定义的一系列系统单元,如Forms 等如果放在第二个USES中将导致TFORM类找不到,看一下类的继承就可以知道,TFORM类是 在FORMS类中定义的。 其他的一些类的单元定义也类似。因为有很多如CONTROLS等类中定义了很多常用的控件, 所以系统将默认添加。 所以第一个USES和第二个USES其实没什么不同,唯一的不同是在第二个USES前系统将定义一 大堆东西。
远 远帆 Unregistered / Unconfirmed GUEST, unregistred user! 2002-02-05 #5 前一个通常是引用某一个单元。 第二个通常是引用某个窗体。 如果在第一个里面引用窗体有可能会出现循环引用的错误, 原因是delphi在编译的时候不知该怎么包含文件,
E eulb Unregistered / Unconfirmed GUEST, unregistred user! 2002-02-05 #7 一般自己写的unit放在imeplementation 后use
碧 碧玉银淑 Unregistered / Unconfirmed GUEST, unregistred user! 2002-02-05 #9 第一个uses是将系统单元或者用户窗体完全包含,第二个则不能出现系统单元,原因楼上 已经说了,它包含的是子定义窗体的共有部分。
C cgzhang Unregistered / Unconfirmed GUEST, unregistred user! 2002-02-06 #11 前一个use在单元的接口部分,第二个use在单元的实现部分,差别很明显
B bowl Unregistered / Unconfirmed GUEST, unregistred user! 2002-02-06 #12 uses一个单元只是对它的接口部分的声明进行引用,并不会造成单元变大。 但在interface部分引用的单元和在implementation部分引用的单元不同。 由于一个单元的implementation部分属于单元的私有部分,在其中引用单元不会 对其他单元造成影响,但interface部分是公开的,故在其中引用一个单元要考虑 交叉引用问题。
uses一个单元只是对它的接口部分的声明进行引用,并不会造成单元变大。 但在interface部分引用的单元和在implementation部分引用的单元不同。 由于一个单元的implementation部分属于单元的私有部分,在其中引用单元不会 对其他单元造成影响,但interface部分是公开的,故在其中引用一个单元要考虑 交叉引用问题。