金字塔通過VBA調(diào)用外部對象時,如何支持事件? [金字塔]
- 咨詢內(nèi)容: 有一個外部對象需要通過CreateObject的方式調(diào)用,在VBA中可以用withevents來聲明新對象,但金字塔中似乎不行。 不知如何調(diào)用支持事件的對象?
VBA中的代碼形式如下:
Dim WithEvents sampleObject ........
Sub Initialize if isObject(sampleObject)=false then set sampleObject = CreateObject("Some.Object") end ifEnd Sub
- 金字塔客服: VBS是一種功能強(qiáng)大的語言,這個從各種宏病毒的泛濫可以看得出,VBS功能強(qiáng)大不是語言
本身,而是它具有調(diào)用自動化COM組件的能力,而且,在VBS中還可以使用事件
VBS提供了一個GetRef函數(shù),VBS手冊上說是返回一個函數(shù)指針,我調(diào)試的結(jié)果,是返回一個
IDispatch接口指針,該指針只有一個DISP成員,就是DISPID為 0的方法
在COM組件中添加IDispatch*類型的屬性,就可以接收該指針,并在需要的時候調(diào)用,也就是
激發(fā)事件
例子
一個WinFormCOM對象的驅(qū)動腳本:
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
神奇吧?現(xiàn)在VBS可以象VB一樣使用了 - 用戶回復(fù): 我試試看,謝謝!
- 網(wǎng)友回復(fù): 這是好東西
- 網(wǎng)友回復(fù): 我自建了一個框架(JCLB),由4個窗格構(gòu)成,名稱分別為W1,W2,W3,W4。其中W3是動態(tài)顯示牌。當(dāng)我點擊“動態(tài)顯示牌”下邊“鄭州期貨”后,W3里邊顯示好幾種商品的信息,我想選擇符合以下條件(名稱前兩個字是“棉花”)的商品,然后顯示到窗格W1中,W1中的信息與W3聯(lián)動。
初看“動態(tài)顯示牌”時,感覺和EXCEL工作表格式很相似,如果在工作表中,使用循環(huán),把符合條件的記錄存到一個二維數(shù)組中,再將數(shù)組數(shù)據(jù)顯示到指定工作表中,應(yīng)該比較簡單。
具體到“動態(tài)顯示牌”中,好像只能用窗格坐標(biāo)函數(shù),想象不出坐標(biāo)函數(shù)怎樣和工作表單元格的函數(shù)相對應(yīng),因此無法下手。在金字塔幫助中好像提到:金字塔只有一維數(shù)組,沒有二維數(shù)組,這樣的話,即使找到符合條件的記錄后,又怎樣顯示到自定義的窗格中呢?
我有點頭大啦,希望老師指點,最好能給個代碼。謝謝各位老師,祝愿新年發(fā)財
有思路,想編寫各種指標(biāo)公式,程序化交易模型,選股公式,預(yù)警公式的朋友
可聯(lián)系技術(shù)人員 QQ: 262069696 進(jìn)行 有償 編寫!(不貴!點擊查看價格!)
相關(guān)文章
-
沒有相關(guān)內(nèi)容