0

如何调用现有的VB6函数并传递参数或动态利用一些定义的对象执行语句?例如

Private Const KONST = 123.45
Private Function First()
    Dim var1 As String
    Dim var2 As Date
    Dim var3 As Integer
    ...
    var3 = Second(var1)                 'LINE 1
    ...
    var2 = var2 + IIf(var3 > KONST, 1, -1) 'LINE 2
    ...
    var2 = var2 * KONST                 'LINE 3
    ...
End Function

Private Function Second(ByVal str As String) As Integer
    Second = CInt(str)
End Function

第 1 行:函数的名称在使用和返回值Second时可以是动态的var1

在第 2 行:整体IIf应该是动态的,使用var3KONST

在第 3 行:整体var2 * KONST应该是动态的,即在这里我可以写var2 + KONSTor var3 / KONSTor var3 + 222or or 1 + 2or myCollection.Item("item_Key")

所有这些动态配置都将在一个配置文件中。

编辑

我正在尝试使网格布局和数据填充动态化。网格布局是指列数、标题、顺序、格式等。人口是指将数据加载到网格中,这样做时,有时我们会使用一些枚举来解析数据库值,我们会应用一些逻辑数据在显示之前,一列的值基于另一列的值等。虽然在某种程度上,这可以通过数据库视图来实现,但是为了将所有这些逻辑放在一个中心位置,我们从源代码中做这些事情. 因此,我需要一些方法来动态调用我的 vb6 代码并在配置文件中定义调用(函数名、参数、枚举、类型、语句)。

4

1 回答 1

2

好吧,您可以使用CallByName(请参阅http://support.microsoft.com/kb/186143以获得许多容易找到的示例之一)动态调用对象上的方法和属性。

但我认为您希望动态执行整个组合语句。为此,您可以使用脚本控件(如在 VBScript 中)。有关示例,请参阅http://support.microsoft.com/kb/184740。特别是,它有一个Eval运行任意语句的函数。

于 2013-09-17T12:29:32.590 回答