作者:hunter__fox
一般情况下,我们使用Custom派生自己的自定义类。
如果我们的自定义类里需要调用另一个自定义类的时候,我们是否可以将它作为这个类中的一个控件将它插入呢?
答案是否定的。
在向Custom中添加控件时,会得到提示,不能向不可视类里添加对象。
但是,如果我们的自定义不可视类(如myCustom)确实需要在其中再包含一个类时,怎么办?
直接的办法是,向类添加一个属性,并在Init事件里为这个属性赋值为相应的对象:
Procedure Init
This.CursorAdapter = CreateObject('myCursorAdapter')
...
EndProc
这样确实解决了问题,但还是不够好,因为我们在为类编写代码时,输入This.CursorAdapter.时,并没有下拉列表。我们只能凭记忆去使用它的方法与属性。
这个问题是可以解决的。
在为myCustom添加属性CursorAdapter后,我们在命令窗口里输入:
Public arSelObj[1],Selobj
Aselobj(arSelObj)
Selobj = arSelObj[1]
Selobj.CursorAdapter = CrecteObject('myCursorAdapter')
Release Selobj,arSelObj
运行这一段代码后,我们再回到myCustom的代码窗口,输入This.CursorAdapter.
这时,就可以看到关于myCursorAdapter的方法属性事件列表了。
这将有利于我们编写myCustom类的功能实现代码。
当然,在代码中,我们还是需要在适当的时候为CursorAdapter属性赋一个myCursorAdapter实例才行,以上方法仅是为编写代码提供了语法引导。
如果你不在意是否在属性编辑器里看到它,那么就更好办了,你可以使用命令直接向它添加对象,调用Addobject方法即可,这样就会添加一个对象而不是属性,但它不会出现在属性列表中。
这样添加的对象需要再用代码为它建立实例了。
Public arSelObj[1],Selobj
Aselobj(arSelObj)
Selobj = arSelObj[1]
Selobj.AddObject('CursorAdapter','myCursorAdapter')
Release Selobj,arSelObj
因为Custom是不可视的类,所有,即使它含有了这样的一个对象,也不能从下拉列表中选择到这个对象从而对它进行编辑。不过这已经够了,我们可以直接在myCursorAdapter编写关于CA的代码。
猫猫的心里话
如何帮助使用VFP的人?
用VFP的人,有专业的,有非专业了,很多人其实是小白,问出的问题是小白,如果问题不对,我们引导他们问正确的问题。无论如何请不要嘲笑他们说帮助都不看,这么简单的问题都不会,嘲笑别人不行,而无法提出建设性答案,是很low的。
我们无论工作需要,还是有自己的软件,都是是需要真正的知识,如何让更多人学习真正的VFP知识呢,只需要点赞,在看,能转发朋友圈就更好了。
加菲猫的vfp倡导用VFP极简混合开发,少写代码、快速出活,用VFP,但不局限于VFP,各种语言混合开发。
已经带领一百多名会员成功掌到VFP的黑科技,进入了移动互联网时代,接下来我们要进入物联网领域。