如何在Custom类添加其它自定义类?

一般情况下,我们使用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的代码。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

加菲猫的VFP

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值