以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  自定义函数问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=79816)

--  作者:ljz
--  发布时间:2016/1/9 17:36:00
--  自定义函数问题

functions.execute(“函数名”,“参数1”,“参数2”,“参数3”,……)

能不能这样改成:

dim s as string=“函数名”&“,”&“参数1” &”,“&“参数2”&”,“&“参数3”,……

functions.execute(s)


--  作者:游
--  发布时间:2016/1/9 20:47:00
--  

不行的,因为函数的原型是 functions.execute(string,object())

 

你可以

 

dim obj() as object = {参数1,参数2,……}

 

functions.execute(函数名,obj)

 

或者自己做一个函数来做统一的接口

 

 


--  作者:ljz
--  发布时间:2016/1/9 20:51:00
--  
好的,谢谢指点
--  作者:ljz
--  发布时间:2016/1/9 22:39:00
--  

Dim cs() As String
cs =r("参数").Split(",")\'r(“参数”)里面存放函数的若干参数
Dim Names() As object                             

Dim objs As New List(Of object)
        
For i As Integer =0 To cs.Length -1
                      objs.Add(cs(i))
        Next
 Names=objs.ToArray() \'将集合转换为数组      
Functions.execute(“函数1”,Names)
代码执行提示错误,高手帮指点


--  作者:游
--  发布时间:2016/1/9 22:52:00
--  

什么错误?

是参数传递错误,还是函数执行错误

如果你的参数都是String型的

Dim cs() As String
cs =r("参数").Split(",")    \'r(“参数”)里面存放函数的若干参数

   ’判断一下空值
Functions.execute(“函数1”,cs)


--  作者:ljz
--  发布时间:2016/1/9 23:00:00
--  

我传递的参数是e,object型的。

函数代码是

Dim e As object = args(0)
e.sender.ShowToolTip("您好", 3000)

错误如下图


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20160109225834.png
图片点击可在新窗口打开查看

--  作者:ljz
--  发布时间:2016/1/9 23:01:00
--  
函数名是“提示”
--  作者:ljz
--  发布时间:2016/1/9 23:02:00
--  

Dim cs() As String
cs =r("参数").Split(",")\'r(“参数”)里面存放函数的若干参数
Dim Names() As object                             

Dim objs As New List(Of object)
        
For i As Integer =0 To cs.Length -1
                      objs.Add(cs(i))
        Next
 Names=objs.ToArray() \'将集合转换为数组      
Functions.execute(“提示”,Names)


--  作者:ljz
--  发布时间:2016/1/10 7:41:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:例子.zip
这是例子,请高手帮忙

--  作者:大红袍
--  发布时间:2016/1/10 11:23:00
--  

 不能直接把字符串用来用啊,动态编译。

 

Functions.remove("函数")
Dim Code As String
Code = "msgbox(123)" & vbcrlf
Functions.Add("函数",Code)
Functions.Complie()
Functions.Execute("函数")