您现在的位置:程序化交易>> 期货公式>> 金字塔等>> 金字塔知识>>正文内容

金字塔通过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  点击在线交流进行 有偿 编写!不贵!点击查看价格!


【字体: 】【打印文章】【查看评论

相关文章

    没有相关内容