加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

VB6开发中的重量级函数CallByName

发布时间:2020-12-16 23:34:05 所属栏目:大数据 来源:网络整理
导读:一、缘由 这个问题来自于我前段时间主持的一个山东省一级OFFICE模拟考试项目(VB6+OFFICE 2003)。 二、问题描述 (1)我有一批VB过程,如下所示: Public Sub Word01(file1 As String) Public Sub Word02(file1 As String) Public Sub Word03(file1 As Stri
一、缘由

这个问题来自于我前段时间主持的一个山东省一级OFFICE模拟考试项目(VB6+OFFICE 2003)。

二、问题描述

(1)我有一批VB过程,如下所示:

Public Sub Word01(file1 As String)
Public Sub Word02(file1 As String)
Public Sub Word03(file1 As String)
......

上述过程的作用分别是进行第1套、第2套......试题的WORD部分的评分。

(2)我想实现在最后的评分过程中,通过一处调用(或尽可能少的语句)即实现对上面
第N套 试题的WORD部分的评分(注意,上面的过程中的参数,即文件名,事先存在于某一个模块文件的一个全局字符串数组中)。

三、找到答案--借助于函数 CallByName

我的解决办法如下:

Dim oWord As clsWord
Set Word = New clsWord

CallByName oWord,"Word" & Mid(modMain.Word(iCurrentNumber),5,2),VbMethod,sSystemPath & "/" & Word(iCurrentNumber)



四、 函数 CallByName解释

根据MSDN,CallByName 函数是VB6新引入的函数,它支持在运行时用来获取对象的属性,设置属性或调用方法。 其具体的定义如下:

Public Function CallByName( _
ByVal ObjectRef As System.Object,_
ByVal ProcName As String,_
ByVal UseCallType As CallType,_
ByVal Args() As Object _
) As Object
参数
ObjectRef
必选。Object。指向公开属性或方法的对象的指针。

ProcName
必选。String。包含对象的属性名或方法名的字符串表达式。

UseCallType
必选。CallType 枚举类型的枚举成员,表示所调用过程的类型。CallType 的值可以是 Method、Get 或 Set。

Args
可选。ParamArray。参数数组,包含要传递给所调用的属性和方法的参数。

从MSDN中,你能够找到有关 CallByName 函数的基本应用举例,但是如果你不细心体会或在实战中经历,却有可能很难意识到此函数的强大威力。

但是,上面说得清楚,必须是调用对象中的方法、属性等。于是,不得已,我便把我的上面诸多VB方法统统放入到一个VB类clsWord中。

于是,最上面代码的前两行是创建上述类的一个实例,而最后一句则是调用此对象实例的方法,如下:


CallByName oWord,sSystemPath & "/" & Word(iCurrentNumber)

上述调用中,传递给对象实例的参数都可以动态确定,这不正体现了 CallByName函数的威力吗?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读