呵呵,我不清楚。什么情况下类需要创建后使用类,什么时候不需要创建就可直接使用类呢?
VAR MYCL : MYCLASS;
****************
MYCL := MYCLASS.CREATE小弟还有一个问题就是程序UINT单元中INTERFACE下的USES 跟implementation下的USES
调用有什么区别吗,好象包含类的单元必须放在顶部调用才行,而只是我要调用的窗体啊,全局变量单元啊只用放在IMPLEMENTATION下USES就可以了。最后想说一下,用DELPHI开发应用程序真快啊
VAR MYCL : MYCLASS;
****************
MYCL := MYCLASS.CREATE小弟还有一个问题就是程序UINT单元中INTERFACE下的USES 跟implementation下的USES
调用有什么区别吗,好象包含类的单元必须放在顶部调用才行,而只是我要调用的窗体啊,全局变量单元啊只用放在IMPLEMENTATION下USES就可以了。最后想说一下,用DELPHI开发应用程序真快啊
VAR MYCL : MYCLASS;
****************
MYCL := MYCLASS.CREATE
这里的Create是构造函数,你可以理解为特殊的类方法,所以能直接调用来创建类实例。关于Use
在implementation部分声明的单元引用只对本单元是公共的,可见的,其他单元即使应用该单元,也不能访问它们,这样对数据实现了良好的封装。
///////////////////////////////////////////////////////
一般情况下,interface部分放系统自带的单元,implementation部分放用户自己写的单元
如interface中有
classA= class(TForm),
那么interface部分必须usesForms单元。同样implementation下的USES包含在implementation中所用到的(除interface的uses中已经引用过的以外的)单元。什么情况下类需要创建后使用类,什么时候不需要创建就可直接使用类呢?
(理解你所说的类实际上对象)
任何情况下都是。除非是使用类方法
INTERFACE下的USES 一般是调用系统预定义的单元,调用窗体在IMPLEMENTATION下USES就可以了,而且只有在IMPLEMENTATION下才能相互调用,即A USES B 同时 B USES A
然后让VCL.EVENT := MYCLASS.EVENT 比如treeview1.onchange := myclass.onchange
结果现在主窗口上一行代码都没有了 就一个INITIALIZE(ALLTCOMPENT) 嘿嘿 比较BT
不过不知道这样做好不好