Public与Var中定义变量的讨论!
unit Unit1;
interface
uses
type
TForm1=class(TForm)
private
public
ADOQuery1:TADOQuery;//#1
end;
var
Form1:TForm1;
ADOQuery1:TADOQuery;//#2
implementation
在#1#2定义的ADOQuery1的区别:
1、#1定义的变量为类成员,#2为全局变量
2、其它单元引用时,#1:TForm1.ADOQuery1,#2:只要Uses申明,直接写ADOQuery1就可以
请问其它还有区别吗?#1还是#2定义变量好一点?
[解决办法]
作用域不同,调用不同
#1类成员变量要先创建类实例才能使用;#2单元变量,可以直接使用
在别的单元使用时就特别明显了;
至于用那个好些,其实从他们的区别已经看出来了,各有好处,这要看需求来使用
[解决办法]
1、#1定义的变量为类成员,在你现在举例中,它是窗体的变量,是每个窗体实例各自独立、互不干扰的。
2、#2为单元的变量,是各个实例共同拥有的,一个实例改变了它,其他实例再访问它时,都会得到这个改变后的值。