如何调用现有的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
和var3
KONST
应该是动态的
在第3行:整个var2 * KONST
应该是动态的,即在这里我可以写var2 + KONST
或var3 / KONST
或var3 + 222
或1 + 2
或myCollection.Item("item_Key")
所有这些动态配置都将在配置文件中。
修改
我正在尝试使网格布局和数据填充动态。通过网格布局,我的意思是列的数量,它们的标题,顺序,格式等。按人口我的意思是将数据加载到网格中,这样做,有时我们用一些Enums解析数据库值,我们应用一些逻辑显示之前的数据,一列的值是基于其他列的值等。虽然,在某种程度上,这可以通过数据库视图实现,但是要在中心位置具有所有这些逻辑,我们从源代码执行此类操作。因此,我需要一些方法来动态调用我的vb6代码并在配置文件中定义调用(函数名称,参数,枚举,类型,语句)。
答案 0 :(得分:2)
好吧,你可以使用CallByName
(参见http://support.microsoft.com/kb/186143中的一个很容易找到的例子)来动态调用对象的方法和属性。
但我认为你想要动态执行整个组合语句。为此,您可以使用脚本控件(如在VBScript中)。有关示例,请参阅http://support.microsoft.com/kb/184740。特别是,它有一个运行任意语句的Eval
函数。