注册 登录
编程论坛 VB6论坛

新手请教如何访问用vb6制作的activex中自定义的方法

yangmz 发布于 2018-10-09 15:35, 2857 次点击
我用VB6学习制作一个简单的activex控件,没有窗体,添加一模块,在moduel中加入了一个函数:
Public Function vfpsetxdata(ByVal oName As Object, ByVal cName As String, ByVal cValue As String)
msgbox "访问成功"
End Function

然后编译成ocx

在VFP表单中加入该控件,name为ole1,不知道如何调用该函数
thisform.ole1.vfpsetxdata()   ---提示:未知的名称

请教如何访问该函数?


6 回复
#2
wmf20142018-10-10 09:40
将ocx中的方法改成无参数的试下。
不同语言类的使用需要考虑到参数的一致性、规范性。vb不是完全的面向对象。
#3
yangmz2018-10-10 14:37
谢谢,再试试
#4
ZHRXJR2018-10-12 09:47
关于自定义控件谈谈我的看法:
控件是一个对象,是实体,所有控件基本上都有用于用户互交的界面,也就是任何控件我们可以通过工具箱将控件拖到窗体的。
自定义控件也是一样的,没有遇到过没有界面的控件。自定义控件也应该有属性、方法、事件,在编辑自定义控件时根据控件需要,设置自定义控件的属性、方法、事件。
楼主的自定义控件“没有窗体”,这就是说没有界面,我想楼主是怎么把这个控件拖到窗体的,不能拖到窗体将不可能将实体放在程序中,因此将无法调用这个控件的任何属性、方法、事件。
也有可能是我知识浅陋,以上的看法不成熟,仅供参考。
#5
wmf20142018-10-12 10:31
回复 4楼 ZHRXJR
我理解楼主“没有窗体”是指没有运行界面,而不是没有设计界面。
很多控件没有运行界面,如“timer”、“winsocket”等。控件实际上是类的集合、封装,在某些时候可以像类一样定义使用,和类的区别就是可以在设计阶段人为设置一些属性值,而类对象则需要在运行阶段通过代码设置。
#6
wube2018-10-13 19:25
我记得VB可以同时开启测试专案和CTL(OCX)专案,逐步运行就能知道错在哪了,
之前要Try写的CTL有没有问题时都这样用的,确定没问题后再编成OCX
#7
yingshu2018-10-17 09:42
VB中模块有两种,标准模块类模块,
类模块有分两种:
1,没有物理表现的控件,在日常的使用过程中,首先应声明实例化后, 才可以对其调用
2、有物理表现的控件,这个就简单了,精彩接触的窗体、控件等等,看的见的都是类的一种表现。包括自制的ActiveX控件
自定义类模块的使用和VB中已经定义好的类是完全相同。

在VFP表单中加入该控件,name为ole1,不知道如何调用该函数
thisform.ole1.vfpsetxdata()   ---提示:未知的名称                           ’错误

过程、函数的调用 object.函数名()
函数在moduel中创建的,应该是 call moduel.vfpsetxdata(参数1、参数2....)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
小小小菜鸟,知识有限,仅供参考,希望对你有帮助

1