金字塔通过VBA调用外部对象时,如何支持事件? [金字塔]
- 咨询内容: 有一个外部对象需要通过CreateObject的方式调用,在VBA中可以用withevents来声明新对象,但金字塔中似乎不行。 不知如何调用支持事件的对象?
VBA中的代码形式如下:
Dim WithEvents sampleObject ........
Sub Initialize if isObject(sampleObject)=false then set sampleObject = CreateObject("Some.Object") end ifEnd Sub
- 金字塔客服: VBS是一种功能强大的语言,这个从各种宏病毒的泛滥可以看得出,VBS功能强大不是语言
本身,而是它具有调用自动化COM组件的能力,而且,在VBS中还可以使用事件
VBS提供了一个GetRef函数,VBS手册上说是返回一个函数指针,我调试的结果,是返回一个
IDispatch接口指针,该指针只有一个DISP成员,就是DISPID为 0的方法
在COM组件中添加IDispatch*类型的属性,就可以接收该指针,并在需要的时候调用,也就是
激发事件
例子
一个WinFormCOM对象的驱动脚本:
Dim frmMain
Set frmMain = CreateObject("WinForm.Form")
frmMain.OnLoad = GetRef("Form_Load")
frmMain.OnClose = GetRef("Form_Close")
frmMain.OnMouseMove=GetRef("Form_MouseMove")
frmMain.ShowModal
Sub Form_Load()
frmMain.Caption="Hello,world!"
MsgBox frmMain.Caption
End Sub
Sub Form_Close(ByRef Cancel)
Cancel=true
End Sub
Sub Form_MouseMove(Button,x,y)
frmMain.DrawText 0,0,"x= " & x & vbCrLf & "y=" & y
End Sub
神奇吧?现在VBS可以象VB一样使用了 - 用户回复: 我试试看,谢谢!
- 网友回复: 这是好东西
- 网友回复: 我自建了一个框架(JCLB),由4个窗格构成,名称分别为W1,W2,W3,W4。其中W3是动态显示牌。当我点击“动态显示牌”下边“郑州期货”后,W3里边显示好几种商品的信息,我想选择符合以下条件(名称前两个字是“棉花”)的商品,然后显示到窗格W1中,W1中的信息与W3联动。
初看“动态显示牌”时,感觉和EXCEL工作表格式很相似,如果在工作表中,使用循环,把符合条件的记录存到一个二维数组中,再将数组数据显示到指定工作表中,应该比较简单。
具体到“动态显示牌”中,好像只能用窗格坐标函数,想象不出坐标函数怎样和工作表单元格的函数相对应,因此无法下手。在金字塔帮助中好像提到:金字塔只有一维数组,没有二维数组,这样的话,即使找到符合条件的记录后,又怎样显示到自定义的窗格中呢?
我有点头大啦,希望老师指点,最好能给个代码。谢谢各位老师,祝愿新年发财
有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友
可联系技术人员 QQ: 262069696 进行 有偿 编写!(不贵!点击查看价格!)
相关文章
-
没有相关内容