麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

使用ADD-IN技術加強VisualBasic開發環境

2019-11-18 17:52:20
字體:
來源:轉載
供稿:網友
----VisualBasic5.0是一個功能強大的集成開發環境,它可以自動檢查語法錯誤,提示編碼員語法格式。這些功能都大大提高了編碼效率。可是它作為快捷開發工具,它的特點還突出體現在那就是Add-In技術上。利用它,我們可以強化和定制VB開發環境:可以自動在所有PRoject中自動加入一個模塊;可以將每個模塊中的某個模塊替換成另一個模塊;可以在程序中查找某段代碼,并將它替換掉;理論上講,我們甚至可以利用該技術做一個代碼自動生成器。

----Add-In技術的實質就是VB編程環境本身做為一個對象模型向用戶公開出來,我們可以將一個模塊、一段代碼做為一個操作對象來修改、優化。下面,我們通過一個實例來介紹Add-In技術的使用。

----例如,你想將程序中的這樣一段代碼:

dimnIndexasinteger
nIndex=cStr(vsFlex.Text)
替換為:
dimsIndexasstring
sIndex=Spread.text

----包括Word在內的大多數編輯軟件都不包括多行查找替換功能,VB5.0的編輯器也不例外,怎么辦呢?

----1、打開VB,在選擇Project類型時選擇"AddIn"。這樣,我們就打開了一個名叫MyAddin的Project。將Project名稱改為你希望的名字,如"Test"。

----2、打開Addin.bas,你發現有一個AddToIni的子程序:

SubAddToINI()
DimErrCodeAsLong
ErrCode=WritePrivateProfileString("Add-Ins32","Myaddin.Connect","0","vbaddin.ini")
EndSub

----在Windows的目錄下,有一文件叫vbaddin.ini,每次VB啟動時將根據該文件的設置確定有那些可用的AddIn程序。AddToIni的功能實際就是將當前的程序注冊到vbaddin.ini。修改"Myaddin.Connect"為"Test.Connect",使之與當前的Project名稱對應。

----3、在Immediate窗口執行AddToIni,完成對當前Addin的注冊。

----4、打開Connect.cls,在變量聲明區有:ImplementsIDTExtensibility

----IDTExtensibility是VB和AddIn程序交互的Interface。當VB在Addin菜單選AddIdManager,并參照當前的Addin程序"Test"時,OnConnect事件就會觸發,IDTExtensibility_OnConnection()程序將被執行。在如下行設置斷點:

----Debug.PrintVBInst.FullName

----運行當前程序。

----5、啟動另外一個VB例程,生成StandardEXE,名叫Project1。從Addin菜單選AddinManager,我們得到一個列表,我們選擇MyAddin并返回。這時,Test被啟動并停在

----Debug.PrintVBInst.FullName

----注意,VBInstance(VBInst)就是指使用該Addin的VB的集成開發環境(VBEObject)。我們可以它做為一個對象來操作。VBEObject包含VBProjects,每個VBProject包含Vbcomponents,每個VBComponet對應一個模塊,每個Form,Class,或Module。

----6、我們在Test的立即窗口執行:

----?VBInstance.ActiveProject.Name

----可以得到Project1的名稱。

----?VBInstance.ActiveProject.VBComponent(0).Name

----可以得到Project1的第一個模塊Form1的名稱。

----到此為止,我們已經基本說明了AddIn的技術內涵。剩下的工作就很容易理解了。

----7、在Project1的AddinManager中,將MyAddin去掉。

----8、再修改Test,打開frmAddin,將

PrivateSubOKButton_Click()
MsgBoxVBInstance.FullName
EndSub
改為:
PrivateSubOKButton_Click()
CallmReplace()
EndSub

PrivateSubmReplace()
DimoProAsVBProject
DimoComAsVBComponent
DimbFindAsBoolean
DimnFindLineasinteger
DimnfindColasinteger

Screen.MousePointer=vbHourglass
OnErrorGoToerrmReplace

SetoPro=VBInstance.ActiveVBProject

'檢查程序是否已保存
IfoPro.FileName=""ThenMsgBox"請先保存!";ExitSub

ForEachoComInoPro.VBComponents
bFind=True
DoWhilebFind
'查找要替換的代碼段
bFind=oCom.CodeModule.Find("dimnIndexasinteger",nFindLine,nfindCol,oCom.CodeModule.CountOfLines,500,True
IfbFindThen
IfoCom.CodeModule.Lines(nFindLine 1,1)="nIndex=cStr(vsFlex.Text)"
'找到后替換
oCom.CodeModule.ReplaceLine
nFindLine,"dimsIndexasstring"
oCom.CodeModule.ReplaceLine
nFindLine 1,"sIndex=Spread.text"
Else
bFind=false
EndIf
EndIf
Loop
NextoCom

Screen.MousePointer=vbDefault
ExitSub

errmReplace:
Beep
Screen.MousePointer=vbDefault
MsgBox"ERROR!"
EndSub

----9、我們再使Test進入運行狀態。

----10、我們再重復第五步,會在Project1的Addin菜單中多一項"MyAddin"。我們在Project1中加入一些要替換的代碼,然后執行MyAddin,替換工作就會完成。

----11、有朋友不希望在Addin菜單出現"MyAddin"字樣,而是具有更明確含義的標識,如"替換"。改動Test的ConnectClass----IDTExtensibility_OnConnection(),將

SetmcbMenuCommandBar=AddToAddInCommandBar("MyAddIn")
改為SetmcbMenuCommandBar=AddToAddInCommandBar("替換")
如果你想將AddinManager中的MyAddin改為
"Replace",可用notepad打開Connect.cls,將:AttributeVB_Descr
----以上介紹地只是AddIn技術的一個簡單應用,了解其機理后,大家可根據需要做出自己的工具。對于一些專業的應用軟件開發商來說,積累越多的AddIn工具,便可以大大提高編碼效率。->


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: av免费大全| 国产精品成人亚洲一区二区 | 免费观看一区二区三区视频 | 精品欧美一区二区精品久久 | 日韩99 | 色七七网站 | 宅男噜噜噜66国产免费观看 | 失禁高潮抽搐喷水h | 国产精品久久久久久久久久久久午夜 | 国产伦精品一区二区三区 | 久久久成人动漫 | 精品中文字幕在线播放 | 亚洲视频在线网 | 国产99精品 | 欧美激情天堂 | 日韩毛片免费观看 | 成人精品aaaa网站 | 少妇一级淫片高潮流水电影 | 欧美成年性h版影视中文字幕 | 久久成人激情视频 | 97色在线观看免费视频 | 欧美一级黄 | 日本精品网| 欧美一级免费在线观看 | 色戒在线版 | 性欧美暴力猛交69hd | 超久久 | 日本不卡视频在线观看 | 欧美一区二区三区久久精品视 | 羞羞视频免费网站男男 | 少妇淫片免费一级毛片 | 91 免费看片 | 欧产日产国产精品乱噜噜 | 免费在线观看亚洲 | 91精品最新国内在线播放 | 特级黄aaaaaaaaa毛片 | 天天干天天透 | 欧美精品电影一区二区 | 久久久久亚洲国产精品 | 4p一女两男做爰在线观看 | 国产精品爱久久久久久久 |