亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

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

使用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网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲久久久久久久久久| 茄子视频成人在线| 亚洲性xxxx| 欧美成人精品在线观看| 久久国产精彩视频| 久久精品国产清自在天天线| 91亚洲永久免费精品| 国产日本欧美一区二区三区| 日韩精品视频中文在线观看| 成人网中文字幕| 97在线观看免费| 久久久久久久久久久亚洲| 国产精品女主播| 国产精品91一区| 国产一区二区三区中文| 欧美高清在线视频观看不卡| 成人黄色av免费在线观看| 久久亚洲精品毛片| 97视频在线观看视频免费视频| 91精品国产综合久久久久久久久| 国产精品无av码在线观看| 日韩高清a**址| 久久久精品免费视频| 国产精品视频yy9099| 国产成人综合亚洲| 国产精品盗摄久久久| 日韩精品视频在线免费观看| 成人激情综合网| 欧美成人精品一区二区| 欧美xxxx做受欧美| 日韩欧美国产黄色| 欧洲精品毛片网站| 成人天堂噜噜噜| 精品一区电影国产| 亚洲精品视频免费| 91理论片午午论夜理片久久| 国产日韩精品综合网站| 色婷婷久久av| 97热在线精品视频在线观看| 色偷偷噜噜噜亚洲男人的天堂| 国产精品电影网| 精品亚洲一区二区三区| 久久视频在线播放| 麻豆成人在线看| 日本一区二区三区在线播放| 97在线视频免费看| 国产在线观看91精品一区| 亚洲春色另类小说| 久久精品中文字幕电影| 日韩欧美大尺度| 在线激情影院一区| 色偷偷av一区二区三区| 色爱av美腿丝袜综合粉嫩av| 91美女片黄在线观看游戏| 国产免费一区二区三区香蕉精| 欧美—级高清免费播放| www.亚洲免费视频| 亚洲aa在线观看| 国产精品高潮呻吟久久av野狼| 最新亚洲国产精品| 欧美三级欧美成人高清www| 国内精品久久久久久| www.欧美免费| 18性欧美xxxⅹ性满足| 少妇久久久久久| 日韩欧美福利视频| 久久久久久久久久av| 国产精品美女www| 一本色道久久88综合日韩精品| 欧美激情免费在线| 欧美麻豆久久久久久中文| 一个人看的www久久| 中文字幕精品视频| 亚洲一区二区三区777| 国内精品视频在线| 国产在线精品自拍| 国产精品久久久久久av| 26uuu另类亚洲欧美日本一| 国产99视频精品免视看7| 亚洲欧美一区二区精品久久久| 午夜精品久久17c| 精品国产视频在线| 亚洲精品永久免费精品| 亚洲精品美女久久久久| 欧美日韩国产综合视频在线观看中文| 国产成人午夜视频网址| 欧洲美女免费图片一区| 狠狠躁夜夜躁人人爽天天天天97| 久久91亚洲精品中文字幕奶水| 亚洲激情视频在线观看| 久久在精品线影院精品国产| 亚洲综合中文字幕在线观看| 亚洲第一区在线观看| 久久噜噜噜精品国产亚洲综合| 国产精品亚洲精品| 精品久久久久久亚洲国产300| 国产精品爱啪在线线免费观看| 亚洲欧美自拍一区| 国产精品自产拍在线观看中文| 国产成人精品在线| 成人xxxxx| 久久久久久综合网天天| 国产精品久久色| 伊人一区二区三区久久精品| 国产精品久久一| 在线播放国产一区二区三区| 国产精品日韩欧美综合| 日韩极品精品视频免费观看| 欧美视频13p| 亚洲一区二区福利| 欧美多人乱p欧美4p久久| 久久久久久久久综合| 亚洲va久久久噜噜噜久久天堂| 国产精品xxx视频| 国产精品91久久久| 国产福利成人在线| 欧美性高跟鞋xxxxhd| 欧美日韩成人在线视频| 日韩国产在线看| 97婷婷涩涩精品一区| 午夜精品久久久久久久99热浪潮| 日韩欧美精品网站| 一区二区三区精品99久久| 91亚洲精品一区| 欧美影院在线播放| 97香蕉超级碰碰久久免费软件| 国产精品永久免费在线| 91性高湖久久久久久久久_久久99| 北条麻妃一区二区三区中文字幕| 亚洲大胆美女视频| 久久久女人电视剧免费播放下载| 成人免费在线视频网址| 日韩视频亚洲视频| 成人黄色大片在线免费观看| 色中色综合影院手机版在线观看| 色www亚洲国产张柏芝| 精品女同一区二区三区在线播放| 欧美理论电影网| 日韩精品在线观看一区二区| 日韩成人中文电影| 成人欧美一区二区三区在线湿哒哒| 日韩久久免费电影| 国产精品久久91| 成人网在线免费观看| 成人黄色免费网站在线观看| 国产欧美日韩专区发布| 欧美日本啪啪无遮挡网站| 国产精品久久久久久久久久尿| 日韩欧美在线视频日韩欧美在线视频| 亚洲国产欧美在线成人app| 91社影院在线观看| 成人激情在线播放| 狠狠躁夜夜躁人人躁婷婷91| 91chinesevideo永久地址| 国产一区二区黑人欧美xxxx| 亚洲精品视频在线播放| 久久福利视频导航| 17婷婷久久www| 国模精品系列视频| 精品中文字幕乱| 色综合久久88色综合天天看泰| 欧美黑人xxx| 亚洲精品成人久久| 国产精品成人aaaaa网站|