版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
VisualBasic概述1.1VisualBasic的特點(diǎn)
VB是一個(gè)快速可視化程式開(kāi)發(fā)工具,是極有特色和功能強(qiáng)大的軟體。
1.可視化設(shè)計(jì)
2.事件驅(qū)動(dòng)編程
3.面向?qū)ο蟮某淌皆O(shè)計(jì)
4.VB6.0是一種32位的開(kāi)發(fā)工具
5.易學(xué)易用、開(kāi)發(fā)週期短返回目錄1.2VisualBasic基本概念
在VB中,對(duì)象是一個(gè)非常重要概念。世界上存在的任何事物都可以稱之為對(duì)象。
類則是具有相同性質(zhì)的對(duì)象的集合,對(duì)象可理解為類的具體化。如人可以稱之為類,而每一個(gè)人,卻只能看做是對(duì)象。
返回目錄1.窗體
圖1-1啟動(dòng)VB後的窗體2.控件圖1-2工具箱3.屬性對(duì)象的屬性是指對(duì)象本身的特性,不同的對(duì)象具有不同的屬性。4.事件事件是指在對(duì)象上發(fā)生的事情,大部分控件都有自己的事件。當(dāng)觸發(fā)對(duì)象的事件時(shí),事件就得到回應(yīng),完成特定的工作。5.方法在VB中,方法是對(duì)象的一個(gè)重要組成部分,它反映了對(duì)象本身的功能,這些功能由特定的內(nèi)部函數(shù)和過(guò)程完成。
6.面向?qū)ο缶幊倘粘I钪械膶?duì)象,如氣球同樣具有屬性、方法和事件。
7.事件驅(qū)動(dòng)
VB是基於
Windows開(kāi)發(fā)環(huán)境下的開(kāi)發(fā)語(yǔ)言,與
Windows環(huán)境保持一定的相似性。
(1)Windows的工作機(jī)制Windows的工作機(jī)制簡(jiǎn)單地說(shuō)是三個(gè)概念:窗口、事件和消息。(2)事件驅(qū)動(dòng)模型在傳統(tǒng)的或“過(guò)程化”的應(yīng)用程式中,應(yīng)用程式自身控制了代碼的執(zhí)行過(guò)程和代碼的執(zhí)行順序。
(3)互動(dòng)式開(kāi)發(fā)傳統(tǒng)的應(yīng)用程式開(kāi)發(fā)過(guò)程可以分為三個(gè)步驟:編碼、編譯和測(cè)試代碼。
(4)事件驅(qū)動(dòng)應(yīng)用程式的工作方式1.3VisualBasic簡(jiǎn)單示例1.3.1設(shè)計(jì)步驟1.啟動(dòng)VB
單擊“開(kāi)始”按鈕,在“程式”菜單中找到VB程式項(xiàng)並單擊,即可啟動(dòng)VB。返回目錄
在“工具箱”中雙擊“標(biāo)籤”控件,將“標(biāo)籤”控件添加到窗體上,此時(shí)可以在窗體上拖動(dòng)“標(biāo)籤”控件,將“標(biāo)籤”控件調(diào)整到適當(dāng)位置,也可調(diào)整它的大小,進(jìn)而得到如圖1-3所示的結(jié)果。2.向窗體添加“標(biāo)籤”控件圖1-3添加“標(biāo)籤”控件
與步驟2相似,向窗體添加一個(gè)“命令按鈕”控件,如圖1-4所示。3.向窗體添加“命令按鈕”控件圖1-4添加“命令按鈕”的窗體
在“屬性窗口”找到“命令按鈕”控件的“Caption”屬性。該屬性用於設(shè)置對(duì)象的標(biāo)題,如圖1-5所示,將它的值改為“走進(jìn)VISUALBASIC”。4.修改“標(biāo)籤”控件和“命令按鈕”控件的屬性圖1-5屬性窗口
接著在“屬性窗口”找到“標(biāo)籤”控件的“Caption”屬性,將其值改為“VB是一門面向?qū)ο笳Z(yǔ)言”,如圖1-6所示。
圖1-6窗體設(shè)計(jì)結(jié)果2.1啟動(dòng)和退出VisualBasic6.0中文版1.VB6.0的啟動(dòng)正確安裝VB6.0後,依次單擊“開(kāi)始”/“程式”/“MicrosoftVisualBasic6.0中文版”/“MicrosoftVisualBasic6.0中文版”,就會(huì)啟動(dòng)VB6.0中文版,如圖2-1所示。返回目錄圖2-1VB6.0中文版的啟動(dòng)畫面2.退出VB6.0
使用菜單欄中“檔”菜單的“退出”命令或單擊窗口右上角的“關(guān)閉”按鈕,即可退出VB6.0。2.2VB的集成開(kāi)發(fā)環(huán)境2.2.1標(biāo)題欄在集成開(kāi)發(fā)環(huán)境的最上邊是標(biāo)題欄,題為“工程1—MicrosoftVisualBasic[設(shè)計(jì)]”表示VB6.0的工作模式為“設(shè)計(jì)模式”,此外還有“運(yùn)行模式”和“中斷模式”兩種工作模式。
返回目錄2.2.2菜單欄菜單欄是最常使用的工具之一,通過(guò)它可以執(zhí)行VB的所有操作。如圖2-4所示,VB6.0菜單欄共有13個(gè)菜單項(xiàng),每個(gè)菜單項(xiàng)有一個(gè)下拉菜單。圖2-4菜單欄2.2.3工具欄圖2-6所示為VB6.0的集成開(kāi)發(fā)環(huán)境中的標(biāo)準(zhǔn)工具欄。圖2-6工具欄2.2.4工具箱
在設(shè)計(jì)階段,通過(guò)使用工具箱中的快捷鍵可以提高編程的效率,工具箱常用快捷鍵及其功能如表2-1所示??旖萱I功能Enter把所選控件放到活動(dòng)窗體中DownArrow選擇與已選工具同一列中下一個(gè)工具UPArrow選擇與已選工具同一列中上一個(gè)工具LeftArrow選擇已選工具左邊的工具RightArrow選擇已選工具右邊的工具Tab從左到右依次通過(guò)工具箱Shift+Tab從右到左依次通過(guò)工具箱End選擇工具箱的最後一個(gè)工具Home選擇指針工具Alt+F4關(guān)閉工具箱表2-1 工具箱中常用快捷鍵
同樣也可以把一些自己需要的控件加載到工具箱中,選擇菜單“工程”/“部件”,就會(huì)彈出如圖2-9所示的對(duì)話框。圖2-9添加控件對(duì)話框2.2.5代碼編輯器窗口
VB6.0中的代碼編輯器窗口(或稱代碼窗口、代碼編輯窗口)是輸入程式代碼和進(jìn)行程式調(diào)試的地方。圖2-10代碼編輯器窗口代碼窗口由以下幾個(gè)部分組成:
標(biāo)題條:用來(lái)顯示應(yīng)用程式的專案名稱和窗體名稱。
對(duì)象框:用來(lái)顯示和選擇窗體中現(xiàn)有的對(duì)象列表和當(dāng)前正在編輯的對(duì)象名。
事件框:用來(lái)顯示和選擇對(duì)象可用的事件。
代碼框:用來(lái)輸入代碼。表2-2 代碼窗口中常用的快捷鍵快捷鍵功能
快捷鍵功能F7查看代碼窗口
Ctrl+Shift+F2到以前游標(biāo)處F2查看“對(duì)象流覽器”
Ctrl+Home到模組開(kāi)頭處Ctrl+F查找
Ctrl+End到模組結(jié)尾處Ctrl+H替換
Ctrl+RightArrow右移一個(gè)單詞F3查找下一個(gè)
Ctrl+FeftArrow左移一個(gè)單詞Shift+F3查找前一個(gè)
Ctrl+Y刪除當(dāng)前行Ctrl+DownArrow下一個(gè)過(guò)程
Ctrl+Delete刪至行尾Ctrl+UpArrow前一個(gè)過(guò)程
Ctrl+Shift+f9清除所有中斷點(diǎn)Shift+F2查看定義
Ctrl+F2切換書簽Ctrl+PageDown到下一個(gè)螢?zāi)?/p>
Shift+F10查看快捷鍵菜單Ctrl+PageUp到上一個(gè)螢?zāi)?/p>
2.2.6專案窗口專案窗口有時(shí)也稱作工程資源窗口,它主要用來(lái)顯示專案檔中包含的所有檔,圖2-11所示即為一個(gè)典型的專案窗口。圖2-11專案窗口2.2.7屬性窗口屬性窗口就是用來(lái)描述對(duì)象屬性的窗口,其中列出選定窗體和控件的屬性設(shè)置值。
圖2-12屬性窗口一個(gè)典型的屬性窗口由以下幾個(gè)部分組成:
標(biāo)題條:顯示專案名稱和窗體名稱。
對(duì)象列表框:用來(lái)顯示和選擇當(dāng)前窗體中所有對(duì)象。
設(shè)置框:用戶可以在其中設(shè)置和修改對(duì)象的屬性。2.2.8窗體窗體是定制應(yīng)用程式介面的窗口,或用做用戶收集資訊的對(duì)話框。
圖2-14窗體2.2.9窗體佈局窗口從窗體佈局窗口中能觀察到所創(chuàng)建的窗體在螢?zāi)?即顯示器)上的位置,從而能控制整個(gè)應(yīng)用程式的佈局。如圖2-15所示。圖2-15窗體佈局窗口2.3創(chuàng)建VisualBasic專案1.VB應(yīng)用程式嚮導(dǎo)
VB應(yīng)用程式嚮導(dǎo)用來(lái)幫助用戶構(gòu)建新應(yīng)用程式的框架。其步驟如下。返回目錄(1)啟動(dòng)VB6.0之後,彈出“新建工程”對(duì)話框,如圖2-16所示。圖2-16“新建工程”對(duì)話框(2)雙擊“VB應(yīng)用程式嚮導(dǎo)”,彈出如圖2-17所示“應(yīng)用程式嚮導(dǎo)—介紹”對(duì)話框。圖2-17“應(yīng)用程式嚮導(dǎo)—介紹”對(duì)話框(3)根據(jù)提示,可以加載自己的設(shè)置。圖2-18“應(yīng)用程式嚮導(dǎo)—介面類型”對(duì)話框(4)如果選擇單文檔,此工程就和“標(biāo)準(zhǔn)EXE”一樣。圖2-19“應(yīng)用程式嚮導(dǎo)—菜單”對(duì)話框(5)根據(jù)這個(gè)對(duì)話框,可以選擇在MDI窗體中所需要的菜單項(xiàng)。圖2-20“應(yīng)用程式嚮導(dǎo)—自定義工具欄”對(duì)話框(6)如果用戶自己設(shè)計(jì)工具欄,只要單擊“重新設(shè)置”按鈕便可設(shè)計(jì)所需工具欄。圖2-21“應(yīng)用程式嚮導(dǎo)—資源”對(duì)話框(7)圖2-21對(duì)話框是用來(lái)選擇是否使用資源檔,兩個(gè)單選項(xiàng)可選擇其中一個(gè)。單擊“下一步”,彈出如圖2-22所示的“應(yīng)用程式嚮導(dǎo)—Internet連接”對(duì)話框。圖2-22“應(yīng)用程式嚮導(dǎo)—Internet連接”對(duì)話框(8)通過(guò)圖2-22對(duì)話框的選擇,可以為應(yīng)用程式添加Internet流覽器,如果不用建立流覽器,單擊“下一步”按鈕即可。同時(shí)彈出圖2-23所示的“應(yīng)用程式嚮導(dǎo)—標(biāo)準(zhǔn)窗體”對(duì)話框。圖2-23“應(yīng)用程式嚮導(dǎo)—標(biāo)準(zhǔn)窗體”對(duì)話框(9)如果應(yīng)用程式中需要圖2-23中所列的對(duì)話框,在複選框中選中需要的對(duì)話框;如果不需要上述對(duì)話框,單擊“下一步”按鈕,彈出如圖2-24所示的“應(yīng)用程式嚮導(dǎo)—數(shù)據(jù)訪問(wèn)窗體”對(duì)話框。圖2-24“應(yīng)用程式嚮導(dǎo)—數(shù)據(jù)訪問(wèn)窗體”對(duì)話框(10)單擊“創(chuàng)建新窗體”按鈕,依次彈出一些對(duì)話框,這些對(duì)話框在以後的學(xué)習(xí)中將會(huì)介紹。單擊“下一步”按鈕,彈出如圖2-25所示“應(yīng)用程式嚮導(dǎo)—已完成!”對(duì)話框。
圖2-25“應(yīng)用程式嚮導(dǎo)—已完成!”對(duì)話框(11)此時(shí)完成了專案的建立?;卮鹜陮?duì)話框的問(wèn)題之後,單擊“完成”按鈕,彈出如圖2-26所示的“工程1”窗體。圖2-26“工程1”窗體圖2-27是ActiveXDLL的創(chuàng)建介面。
圖2-27ActiveXDLL的創(chuàng)建介面2.4菜單的詳細(xì)介紹
啟動(dòng)VB,在“新建工程”對(duì)話框中選中“標(biāo)準(zhǔn)EXE”圖示,然後打開(kāi)。在“工程”菜單中選擇“添加模組”菜單項(xiàng),會(huì)彈出一個(gè)對(duì)話框,選中“模組”項(xiàng),單擊“打開(kāi)”按鈕。便在工程流覽器中添加了一個(gè)模組,而且會(huì)彈出一個(gè)模組代碼編輯窗口,如圖2-28所示。圖2-28模組代碼編輯窗口返回目錄
然後將模組代碼編輯窗口關(guān)閉。在Form窗體中添加兩個(gè)命令按鈕,如圖2-29所示。圖2-29窗體設(shè)計(jì)
在運(yùn)行菜單中單擊“啟動(dòng)”,便可運(yùn)行。單擊Command1,便會(huì)顯示結(jié)果,如圖2-30所示。圖2-30執(zhí)行結(jié)果1.檔(File)(1)新建專案(Newproject)(2)打開(kāi)專案(Openproject)(3)刪除專案(Removeproject)(4)添加專案(Addproject)(5)保存專案(Saveproject)和另存項(xiàng)目(Saveprojectas)(6)保存當(dāng)前專案(Savecurrentobject)和另存當(dāng)前專案(Savecurrentobjectas)(7)生成工程.exe(Makeprojectname.exe)(8)生成工程組(Makeprojectgroup)2.編輯(Edit)(1)撤銷(Undo)(2)重複(Redo)(3)剪切(Cut)(4)拷貝(Copy)(5)粘貼(Paste)(6)粘貼連接(Pastelink)(7)刪除(Delete)(8)從資料庫(kù)刪除表(Deletetablefromdatabase)(9)查找(Find)(10)查找下一項(xiàng)(Findnext)(11)退換(Replace)(12)全選(Selectall)(13)全選所有列(Selectallcolumn)(14)表(Table)(15)縮進(jìn)(Indent)(16)凸出(Outdent)(17)插入檔(Insertfile)(18)屬性和方法列表(Listproperties/method)(19)常量列表(Listconstant)(20)快速資訊(Quickinfo)(21)參數(shù)資訊(Parameterinfo)(22)自動(dòng)完成關(guān)鍵字(Completeword)(23)到行(Reachrow)(24)書簽(Bookmarks)3.視圖(View)(1)代碼窗口(CodeWindow)只剩下如圖2-32的介面,圖2-32關(guān)閉所有的窗口的編輯器(2)對(duì)象窗口(Objectwindow)(3)定義(Definition)(4)最後位置(Lastposition)(5)對(duì)象流覽器(Objectbrowser)(6)立即窗口(Immediatewindow)(7)局部變數(shù)窗口(Localswindow)(8)監(jiān)視窗口(Watchwindow)(9)調(diào)用堆疊(Callstack)(10)專案資源管理器(Projectexplorer)(11)屬性窗口(Propertieswindow)(12)窗體佈局窗口(Formlayoutwindow)(13)屬性頁(yè)(Protertypages)(14)表(Table)(15)縮放(Zoom)(16)顯示窗格(Showwindowgrid)(17)工具箱(Toolbox)(18)數(shù)據(jù)視圖窗口(Dataviewwindow)(19)調(diào)色板(Colorpalette)(20)工具欄(Toolbar)(21)可視化部件管理器(Visualcomponentmanager)4.工程(Project)(1)添加窗體(Addform)(2)添加MDI窗體(AddMDI)(3)添加模組(Addmodual)(4)添加類模組(Addclassmodual)(5)添加用戶控件(Addusercontrol)(6)添加屬性頁(yè)(Addprotertypage)(7)添加外接類(Addaddinclass)(8)添加微軟用戶連接(AddMicrosoftuserconnection)(9)添加環(huán)境(Adddataenviroment)(10)添加DHTML頁(yè)(AddDHTMLpage)(11)添加ActiveX設(shè)計(jì)器(AddActiveXdesigner)(12)添加檔(Addfile)(13)刪除窗體(Removeform)(14)引用(Reference)(15)組件(Component)(16)專案屬性(Projectnameproperty)5.格式(Format)(1)對(duì)齊(Align)(2)按同樣大小製作(Makesamesize)(3)按網(wǎng)格大小調(diào)整(Sizetogrid)(4)水準(zhǔn)距離(Horizontalspacing)(5)垂直距離(Verticalspacing)(6)窗體居中對(duì)齊(Centerinform)(7)順序(Order)(8)鎖住控件(Lockcontrols)6.調(diào)試(Debug)(1)逐語(yǔ)句(Stepinto)(2)逐過(guò)程(Stepproducer)(3)跳出(Stepout)(4)運(yùn)行到游標(biāo)處(Runtocursor)(5)添加監(jiān)視(Addwatch)(6)編輯監(jiān)視(Editwatch)(7)快速監(jiān)視(Quickwatch)(8)切換中斷點(diǎn)(Togglebreakpoint)(9)清除所有中斷點(diǎn)(Clearallbreakpoints)(10)執(zhí)行下一條語(yǔ)句(Setnextstatement)(11)顯示下一條語(yǔ)句(Shownextstatement)7.運(yùn)行(Run)(1)開(kāi)始運(yùn)行(Start)(2)全編譯運(yùn)行(Startwithfullcompile)(3)中斷(Break)(4)結(jié)束(End)(5)重新運(yùn)行(Restart)8.查詢(Find)(1)運(yùn)行(Run)(2)清除結(jié)果(Clearresult)(3)驗(yàn)證SQL語(yǔ)法(Testsql)(4)分組(Group)(5)改變類型(Changetype)(6)添加到輸出(Addtooutput)(7)排序(Sort)(8)刪除篩檢程式(Removefilter)9.工具(Tool)(1)添加過(guò)程(Addproducer)(2)過(guò)程屬性(Producerattribute)(3)菜單編輯器(Menueditor)(4)選項(xiàng)(Options)(5)發(fā)佈(Broadcast)10.外接程式(Add-ins)(1)可視化數(shù)據(jù)管理器(Visualdatamanager)(2)外接程式管理器(Add–insmanager)11.窗口(Windows)12.幫助(Help)2.5應(yīng)用程式開(kāi)發(fā)實(shí)例創(chuàng)建VB應(yīng)用程式有四個(gè)主要步驟:(1)創(chuàng)建應(yīng)用程式介面;(2)設(shè)置屬性;(3)編寫代碼;(4)編譯運(yùn)行。返回目錄2.5.1創(chuàng)建應(yīng)用程式介面1.用工具箱繪製控件步驟如下:(1)單擊工具箱中控件——此時(shí)是“文本框”。(2)將指針移到窗體上。該指針變成十字線,如圖2-33所示。(3)將十字線放在控件的左上角所在處。(4)拖動(dòng)十字線畫出適合要求的控件大小的方框(拖動(dòng)的意思是按住滑鼠左鍵用滑鼠指針移動(dòng)對(duì)象)。(5)釋放滑鼠按鈕,控件出現(xiàn)在窗體上。圖2-33用工具箱繪製文本框2.調(diào)整控件大小、移動(dòng)和鎖定控件(1)單擊需要調(diào)整尺寸的控件,選定的控件上出現(xiàn)尺寸句柄。(2)將滑鼠指針定位到尺寸句柄上,拖動(dòng)該尺寸句柄直到控件達(dá)到所希望的大小為止。(3)釋放滑鼠按鈕。2.5.2設(shè)置屬性屬性窗口包含如下的元素:(1)對(duì)象框:顯示選中要設(shè)置屬性的對(duì)象的名字。單擊對(duì)象框右邊的箭頭,顯示當(dāng)前窗體的對(duì)象列表。(2)排序:從按字母順序排列的屬性列表中進(jìn)行選取,或從按邏輯(諸如與外觀、字體或位置有關(guān)的)分類的層次結(jié)構(gòu)視圖中進(jìn)行選取。(3)屬性列表:左列顯示所選對(duì)象的屬性,右列可以編輯和查看設(shè)置值。圖2-35屬性窗口2.5.3編寫代碼1.打開(kāi)代碼編輯器窗口圖2-36顯示了在雙擊“命令按鈕”控件後彈出的代碼編輯器窗口,以及該命令的事件。圖2-36代碼編輯器窗口2.事件過(guò)程的創(chuàng)建
VB應(yīng)用程式的代碼被分為若干小的代碼塊,一個(gè)代碼塊稱為過(guò)程。
(1)在“對(duì)象”列表框中,選定活動(dòng)窗體中的一個(gè)對(duì)象名。(2)在“過(guò)程”列表框中,選擇指定對(duì)象的事件名。(3)在Sub和EndSub語(yǔ)句之間輸入下麵的代碼:Text1.Text="Hello,world!"(4)這個(gè)事件過(guò)程應(yīng)該是:
PrivateSubCommand1_Click()Text1.Text="Hello,world!"EndSub2.5.4保存應(yīng)用程式在窗體和代碼都設(shè)計(jì)好以後,應(yīng)該保存檔,以防止調(diào)試或運(yùn)行程式時(shí)發(fā)生死機(jī)或別的原因引起檔丟失。
2.5.5調(diào)試、運(yùn)行應(yīng)用程式為了運(yùn)行應(yīng)用程式,可以從“運(yùn)行”菜單中選擇“啟動(dòng)”,或者單擊工具欄中的“啟動(dòng)”按鈕,或按F5鍵。
VB中的數(shù)據(jù)又以四種形式存儲(chǔ):變數(shù)、常量、數(shù)組和記錄,如表3-1所示。每一種都適合於不同的特定任務(wù)。名字能夠存儲(chǔ)的數(shù)據(jù)變數(shù)常量數(shù)組記錄一個(gè)可以改變的單值一個(gè)固定的單值多個(gè)同一數(shù)據(jù)類型的值多個(gè)不同數(shù)據(jù)類型的數(shù)據(jù)值表3-1 數(shù)據(jù)存儲(chǔ)形式3.1變數(shù)與常量3.1.1變數(shù)變數(shù)是指在程式運(yùn)行過(guò)程中可以改變的量。一個(gè)變數(shù)有一個(gè)名字,在內(nèi)存中佔(zhàn)據(jù)一定的存儲(chǔ)單元,在該存儲(chǔ)單元中存放變數(shù)的值。
1.變數(shù)命名為便於程式設(shè)計(jì)時(shí)使用變數(shù),應(yīng)根據(jù)變數(shù)代表的意義,給變數(shù)起個(gè)易讀、明瞭的名字,如MyName,MyAge,Total,Sum等。2.變數(shù)聲明在VB中使用變數(shù),除了正確給變數(shù)命名之外,還要聲明其數(shù)據(jù)類型。變數(shù)名的聲明有兩種方法:隱式聲明和顯式聲明。返回目錄
還有一種方式就是在窗體的對(duì)象列表中選擇“(通用)”,然後在“聲明區(qū)”(Declarations)中聲明OptionExplicit,如圖3-1所示。
圖3-1顯示聲明變數(shù)表3-2 VB的標(biāo)準(zhǔn)數(shù)據(jù)類型數(shù)據(jù)類型類型名稱類型聲明字元字節(jié)有效值位元組型Byte
10~255布爾型Boolean
2True或False整型Integer%2–32768~32767長(zhǎng)整型Long&4–2147483648~2147483647單精確度型Single!4負(fù)數(shù):–3.402823E38~–1.40298E–45正數(shù):1.401298E–45~3.402823E38雙精度型Double#8負(fù)數(shù):–1.79769313486232E308~–4.94065645841247E–324正數(shù):4.94065645841247E–324~1.79769313486232E308貨幣型Currency@8–922337203685477.5808~
922337203685477.5807日期型Date
8January1100~December319999對(duì)象型Object
4任何對(duì)象的引用變長(zhǎng)字串型String$字串長(zhǎng)度,1位元組/字元
定長(zhǎng)字串型String*Num$Num
可變類型Variant
不定
添加OptionExplicit語(yǔ)句的方法:(1)自動(dòng)添加OptionExplicit語(yǔ)句(2)手工添加OptionExplicit語(yǔ)句3.全局變數(shù)的聲明
Public聲明的變數(shù)可以被工程中的任一窗體、任一模組中的任一過(guò)程程式使用。
4.變數(shù)的作用域變數(shù)在程式中的位置不同,變數(shù)的作用域就不同,有窗體變數(shù)、模組變數(shù)、過(guò)程變數(shù)、類變數(shù)及語(yǔ)句變數(shù)。圖3-3窗體變數(shù)的定義(1)窗體變數(shù)(2)模組變數(shù)(3)過(guò)程變數(shù)在過(guò)程中使用的變數(shù)可以是它的窗體或模組Declaration變數(shù),也可以是Public變數(shù)或過(guò)程裏聲明的變數(shù)。
(4)類模組中的變數(shù)在類模組變數(shù)中的[Public|Private]類型,Public已說(shuō)過(guò),可以被其他窗體或模組訪問(wèn),而Private變數(shù)只能被類模組中的其他過(guò)程或函數(shù)訪問(wèn)。(5)語(yǔ)句變數(shù)變數(shù)的聲明不一定要在窗體、模組、過(guò)程的頂部進(jìn)行,可以在程式的任何地方進(jìn)行聲明,語(yǔ)句變數(shù)就是在窗體、模組、過(guò)程的語(yǔ)句塊中聲明的變數(shù)。
5.變數(shù)名衝突程式可以在不同地方聲明變數(shù),上面已經(jīng)講過(guò)。
6.變數(shù)的賦值聲明完變數(shù)後,就可以給變數(shù)賦值。
7.變數(shù)的精度每個(gè)變數(shù)都有其類型,每種類型都有其自身的存儲(chǔ)定義(在後面會(huì)講到),因而每個(gè)變數(shù)都有其範(fàn)圍。
3.1.2常量(1)系統(tǒng)內(nèi)在常量這種常量是系統(tǒng)提供的自身?yè)碛械某A?。例如,?-3所示是VB中的表示顏色的常量,可在代碼中的任何地方代替實(shí)際值。表3-3 系統(tǒng)常量中的顏色值常量值描述VbBlack0x0黑色VbRed0xFF紅色VbGreen0xFF00綠色VbYellow0xFFFF黃色VbBlue0xFF0000藍(lán)色VbMagenta0xFF00FF紫紅色VbCyan0xFFFF00青色VbWhite0xFFFFFF白色(2)符號(hào)常量(自定義常量)
在程式設(shè)計(jì)中使用Const聲明的常量。在聲明一個(gè)常量後就可以用常量名來(lái)引用其代表的常量,常量的定義語(yǔ)法如下:[Public|Private]Const變數(shù)名[As數(shù)據(jù)類型]=運(yùn)算式注意以下幾點(diǎn):
①用Const聲明的常量在程式運(yùn)行的過(guò)程中是不能被重新賦值的。
②在常量聲明的同時(shí)賦值。
③可以為聲明的常量指定類型,如ConstconValAsCurrency=3.78,缺省時(shí)為所賦值的類型。
④
用常量為常量初始化時(shí),注意迴圈引用易出錯(cuò)。
3.2數(shù)值數(shù)據(jù)類型
數(shù)值數(shù)據(jù)類型有整型、長(zhǎng)整型、單精確度型、雙精度型及貨幣型。
3.2.1整型整型以Integer表示,變數(shù)存儲(chǔ)為16位(2個(gè)位元組),數(shù)值範(fàn)圍為–32768~32767之間,當(dāng)給Integer類型的變數(shù)賦值時(shí),如果值大於32767或小於–32768便會(huì)溢出,因此當(dāng)某個(gè)整數(shù)的值超出Integer的範(fàn)圍時(shí),必須用Long類型。3.2.2長(zhǎng)整型
Long(長(zhǎng)整型)變數(shù)存儲(chǔ)為32位(4個(gè)位元組),1個(gè)符號(hào)位,31個(gè)數(shù)據(jù)位。
返回目錄3.2.3單精確度型單精確度型也稱為Single數(shù)據(jù)類型。
Single(單精確度浮點(diǎn)型)變數(shù)存儲(chǔ)為
IEEE32位(4個(gè)位元組)浮點(diǎn)數(shù)值形式,一個(gè)符號(hào)位,8個(gè)指數(shù)位,23個(gè)數(shù)據(jù)位。3.2.4雙精度型雙精度型也稱Double數(shù)據(jù)類型。
3.2.5貨幣型貨幣型也稱currency數(shù)據(jù)類型
Currency變數(shù)存儲(chǔ)為
64位(8個(gè)位元組)整型數(shù)值形式,然後除以10000給出一個(gè)定點(diǎn)數(shù),其小數(shù)點(diǎn)左邊有
15位數(shù)字,右邊有
4位數(shù)字。
3.3字符串
字串是保持字元資訊的基本數(shù)據(jù)類型。字串變數(shù)可以包含大約65535位元組(64KB),可以為定長(zhǎng),也可以為變長(zhǎng),每個(gè)位元組包含一個(gè)字元。
3.3.1可變長(zhǎng)字串大多數(shù)字串變數(shù)是可變長(zhǎng)字串類型,存儲(chǔ)在其中的字串長(zhǎng)度可以為0~65535個(gè)字元之間??勺冮L(zhǎng)字串變數(shù)一次只能存儲(chǔ)一個(gè)字串,但其長(zhǎng)度可以隨程式運(yùn)行而改變。
3.3.2定長(zhǎng)字串定長(zhǎng)字串類型的變數(shù),可以定義從0~32767個(gè)字元的固定長(zhǎng)度。程式可以改變定長(zhǎng)字串變數(shù)的內(nèi)容,但是不能改變其長(zhǎng)度。
返回目錄3.3.3使用字串應(yīng)注意的問(wèn)題(1)0結(jié)束字串有些WindowsAPI介面函數(shù)是用C++編寫的,字串最後一個(gè)字元是CHR(0),因而要將WindowsAPI函數(shù)轉(zhuǎn)換到VB中來(lái),必須經(jīng)過(guò)包裝轉(zhuǎn)換。(2)字串中的大小區(qū)別
VB對(duì)其語(yǔ)法的大小寫沒(méi)有區(qū)別,但在字串中,VB對(duì)大小寫有區(qū)別,如果想忽視字串大小的區(qū)別,可以加上Optioncomparetext語(yǔ)句。
(3)字串函數(shù)3.4Variant數(shù)據(jù)類型Variant數(shù)據(jù)類型是沒(méi)被顯式聲明(用如Dim、Private、Public或Static等語(yǔ)句)為其他類型變數(shù)的數(shù)據(jù)類型,Variant數(shù)據(jù)類型沒(méi)有類型聲明字元。
Variant是一種特殊的數(shù)據(jù)類型,除了定長(zhǎng)String數(shù)據(jù)及用戶定義類型外,可以包含任何種類的數(shù)據(jù)。
返回目錄3.5Date數(shù)據(jù)類型Date變數(shù)存儲(chǔ)為IEEE64位(8個(gè)位元組)浮點(diǎn)數(shù)值形式,其表示的日期範(fàn)圍為100年1月1日~9999年12月31日,時(shí)間範(fàn)圍為0∶00∶00~23∶59∶59。
返回目錄3.6Decimal數(shù)據(jù)類型
Decimal變數(shù)存儲(chǔ)為96位(12個(gè)位元組)無(wú)符號(hào)的整型形式,值為除以一個(gè)10的冪數(shù)所得結(jié)果。
Decimal數(shù)據(jù)類型只能在Variant中使用,也就是說(shuō),不能聲明變數(shù)為Decimal類型。
返回目錄3.7數(shù)據(jù)類型轉(zhuǎn)換一些編程語(yǔ)言對(duì)不同類型數(shù)據(jù)的處理比較嚴(yán)格。將不同類型的值賦給了變數(shù),可能會(huì)產(chǎn)生邏輯錯(cuò)誤。
返回目錄3.8數(shù)組數(shù)組是有序數(shù)據(jù)的集合。數(shù)組中的元素屬於同一數(shù)據(jù)類型。數(shù)組的下標(biāo)是有界的,分為下界和上界。數(shù)組可以用Dim、Private、Public或Static來(lái)聲明,它們的語(yǔ)法格式相同。下麵只講用Dim聲明數(shù)組。返回目錄表3-4 數(shù)據(jù)類型轉(zhuǎn)換函數(shù)函數(shù)轉(zhuǎn)換後的類型
函數(shù)轉(zhuǎn)換後的類型CboolBoolean
CSngSingleCbyteByte
CStrStringCcurCurrency
CvarVariantCdateDate
CVErrErrorCDblDouble
Hex十六進(jìn)制數(shù)Chr返回字元碼對(duì)應(yīng)的字元
Oct八進(jìn)制數(shù)CintInteger
Str將字串以數(shù)字返回CLngLong
Val返回字串內(nèi)的數(shù)字3.8.1固定大小數(shù)組固定大小數(shù)組是指數(shù)組元素的個(gè)數(shù)是固定不變的。根據(jù)固定大小數(shù)組的維數(shù),可以將它分為一維數(shù)組和多維數(shù)組。1.一維數(shù)組2.多維數(shù)組Dim數(shù)組名([下標(biāo)邊界列表])[As數(shù)據(jù)類型]下標(biāo)邊界的定義形式:[下標(biāo)下界]To[下標(biāo)上界]下標(biāo)邊界列表指用逗號(hào)分開(kāi)的數(shù)組各維的下標(biāo)邊界,即[下標(biāo)下界]To[下標(biāo)上界],[下標(biāo)下界]To[下標(biāo)上界],……,[下標(biāo)下界]To[下標(biāo)上界](第一維)(第二維)(第n維)3.8.2動(dòng)態(tài)數(shù)組如果把數(shù)組的大小定義到足夠大來(lái)滿足任意的實(shí)際應(yīng)用需要,這種方法效率很低且浪費(fèi)記憶體空間。
在聲明數(shù)組時(shí),若不給出維數(shù)列表,則是將數(shù)組聲明為動(dòng)態(tài)數(shù)組。例如:
DimMyArry()AsInteger1.LBound函數(shù)和UBound函數(shù)
LBound函數(shù)和UBound函數(shù)都是返回一個(gè)Long型數(shù)據(jù),前者得到的值為指定數(shù)組維可用的最小下標(biāo),而後者得到的是最大下標(biāo)。它們的語(yǔ)法為:
LBound(數(shù)組名,[指定的維數(shù)])UBound(數(shù)組名,[指定的維數(shù)])2.?dāng)?shù)組的高級(jí)功能數(shù)組常用來(lái)存儲(chǔ)成組的變數(shù),但在別的一些方面數(shù)組也是很有用的。
(1)數(shù)組賦值給維數(shù)或數(shù)據(jù)類型不同的數(shù)組賦值,成功或失敗取決於以下幾個(gè)因素:①賦值符左邊的數(shù)組類型(固定數(shù)組或動(dòng)態(tài)數(shù)組)是否與右邊匹配。②賦值符左邊數(shù)組的維數(shù)是否和賦值符右邊數(shù)組的維數(shù)匹配。③賦值符兩邊數(shù)組的每一維的數(shù)組元素個(gè)數(shù)是否匹配。④賦值符兩邊所有元素的數(shù)據(jù)類型是否相容。(2)從函數(shù)返回?cái)?shù)組從一個(gè)函數(shù)返回一組值是可能實(shí)現(xiàn)的。
3.9記錄
至此,已經(jīng)介紹了基本類型的變數(shù),也介紹了構(gòu)造類型數(shù)據(jù)——數(shù)組。但是只有這些數(shù)據(jù)類型是不夠的,有時(shí)需要將不同類型的數(shù)據(jù)組合成一個(gè)有機(jī)的整體,以便於引用。1.定義記錄類型記錄數(shù)據(jù)類型用Type…EndType語(yǔ)句定義。定義一個(gè)記錄數(shù)據(jù)類型的一般形式為:[Private|Public]Type記錄類型名
成員列表EndType
返回目錄4.1算術(shù)運(yùn)算符
在VB中,算術(shù)運(yùn)算符與其他語(yǔ)言基本相同,有加、減、乘、除、指數(shù)(冪)及求餘運(yùn)算等。表4-1列出VB中用到的算術(shù)運(yùn)算符。
返回目錄運(yùn)算符(名稱)示例結(jié)果運(yùn)算元類型^(指數(shù))2^38Integer,Long,Single,Double,Currency+(加或取正值)2.1+3.15.2Integer,Long,Single,Double,Currency–(減或取負(fù)值)5–23Integer,Long,Single,Double,Currency*(乘)2*510Integer,Long,Single,Double,Currency/(除)4.5/2.51.8Integer,Long,Single,Double,Currency\(整數(shù)除法)5\31Integer,LongMod(求餘)5Mod32Integer,Long表4-1 VB的算術(shù)運(yùn)算符1.指數(shù)運(yùn)算示例本示例使用^運(yùn)算符來(lái)表示某數(shù)的乘方的指數(shù)值。DimMyValueMyValue=2^2'返回4。
MyValue=3^3^3'返回19683。
MyValue=(–5)^3'返回–125。^運(yùn)算符一般用於整數(shù)的冪運(yùn)算。
2.乘法運(yùn)算示例當(dāng)給一個(gè)已經(jīng)定義的數(shù)據(jù)類型的變數(shù)進(jìn)行賦值時(shí),不但要考慮溢出,而且要考慮精度問(wèn)題。
3.除法運(yùn)算示例除法運(yùn)算是生活當(dāng)中常見(jiàn)的一種運(yùn)算,但在程式設(shè)計(jì)時(shí)也是最容易出錯(cuò)的一種運(yùn)算,因乘法和除法在運(yùn)算中會(huì)產(chǎn)生較大的數(shù)據(jù)有效位變動(dòng)。
(1)溢出問(wèn)題(2)精度問(wèn)題4.整除示例5.求餘運(yùn)算運(yùn)算結(jié)果為1,求餘運(yùn)算換句話說(shuō)就是在進(jìn)行整數(shù)的除法運(yùn)算時(shí)被略去的餘數(shù)。求餘運(yùn)算一般在整數(shù)集合中進(jìn)行運(yùn)算。4.2字串運(yùn)算符
字串運(yùn)算符有兩個(gè):“&”和“+”,都用於字串的連接。當(dāng)運(yùn)算符連接的兩個(gè)運(yùn)算式都是字串時(shí),它們的作用是一樣的。區(qū)別在於:&強(qiáng)制兩個(gè)運(yùn)算式(它們的類型可能不同)作字串連接;而當(dāng)+運(yùn)算符兩邊的運(yùn)算式中混著字串及數(shù)值的話,其結(jié)果會(huì)是數(shù)值的求和,如果都是字串作“相加”,則返回串接起來(lái)的字串。
返回目錄4.3關(guān)係運(yùn)算符
關(guān)係運(yùn)算符用於兩個(gè)值的比較,其結(jié)果為True或False。它既可用於字串也可以用於數(shù)值。
返回目錄4.4邏輯運(yùn)算符邏輯運(yùn)算符處理Boolean類型運(yùn)算元,運(yùn)算結(jié)果也為Boolean類型。
表4-5 邏輯運(yùn)算規(guī)則運(yùn)算符(名稱)示例Not(邏輯非)And(邏輯與)Or(邏輯或)Xor(異或)Eqv(邏輯相等)Imp(蘊(yùn)涵)Nota若a為True,則Nota為FalseaAndb當(dāng)且僅當(dāng)a,b同為True時(shí),aAndb為True,否則為FalseaOrb當(dāng)且僅當(dāng)a,b同為False時(shí),aAndb為False,否則為TrueaXorba,b不同時(shí),aXorb為True,否則為FalseaEqvba,b相同時(shí),aEqvb為True,否則為FalseaImpb當(dāng)且僅當(dāng)a為True,同時(shí)b為False時(shí),aImpb為False,否則為True返回目錄4.5特殊運(yùn)算符
VB提供了兩種特殊運(yùn)算符:Is和Like。
Is運(yùn)算符比較兩個(gè)對(duì)象變數(shù),並返回True或False結(jié)果。
Like運(yùn)算符把一個(gè)字串運(yùn)算式與一個(gè)給定模式(Pattern)相比較,並返回True或False結(jié)果。
返回目錄4.5.1Is運(yùn)算符Is運(yùn)算符用來(lái)比較兩個(gè)對(duì)象的引用變數(shù)。其語(yǔ)法為:
result=object1Isobject2Is運(yùn)算符的語(yǔ)法具有以下幾個(gè)部分:result必需的,可為任何數(shù)值變數(shù)。object1必需的,可為任何對(duì)象名稱。object2必需的,可為任何對(duì)象名稱。4.5.2Like運(yùn)算符Like運(yùn)算符用來(lái)比較兩個(gè)字串。其語(yǔ)法為:
result=stringLikepatternLike運(yùn)算符的語(yǔ)法具有以下幾個(gè)部分:result必需的,可為任何數(shù)值變數(shù)。string必需的,可為任何字串運(yùn)算式。pattern必需的,可為任何字串運(yùn)算式,遵循下麵“說(shuō)明”中的模式匹配約定。
下麵列舉的是模式匹配的其他重要規(guī)則:(1)charlist開(kāi)頭的驚嘆號(hào)(!)意味著,如果在string中找到任何不屬於charlist的字元,則存在一個(gè)匹配。(2)連字元(–)可以出現(xiàn)在charlist的開(kāi)頭(如果使用驚嘆號(hào),則在驚嘆號(hào)之後),也可以出現(xiàn)在charlist的結(jié)尾與自身匹配。(3)當(dāng)指定了字元範(fàn)圍時(shí),這些字元必須按照昇冪(從最小到最大)順序來(lái)顯示。(4)字元序列[]被看作是長(zhǎng)度為零的字串("")。4.6運(yùn)算符的優(yōu)先順序運(yùn)算符的優(yōu)先順序有以下規(guī)則:(1)當(dāng)運(yùn)算式中有多個(gè)運(yùn)算符時(shí),較高優(yōu)先順序的運(yùn)算先進(jìn)行。(2)當(dāng)運(yùn)算式中有多個(gè)運(yùn)算符的優(yōu)先順序相同時(shí),運(yùn)算按從左到右的順序進(jìn)行。(3)當(dāng)運(yùn)算式中有括弧時(shí),先計(jì)算括弧內(nèi)的值,再計(jì)算括弧外的值。(4)按運(yùn)算符優(yōu)先順序進(jìn)行運(yùn)算。返回目錄表4-7 優(yōu)先順序優(yōu)先級(jí)運(yùn)算符
優(yōu)先級(jí)運(yùn)算符1^
8Not2–
9And3*,/
10Or4\
11Xor5Mod
12Equ6+,–
13Imp7=,>,<,<>,>=,<=
5.1賦值語(yǔ)句賦值語(yǔ)句的語(yǔ)法為:
[Let]變數(shù)或?qū)傩?運(yùn)算式Let是可選項(xiàng),在早期Basic語(yǔ)言賦值語(yǔ)句中被要求使用,在VB程式的賦值語(yǔ)句中通常被省略。
對(duì)對(duì)象的賦值一般方法是:
object.attribute=value其中object是對(duì)象名,attribute是屬性,value是值。
返回目錄5.2注釋語(yǔ)句注釋是在程式中加入一些評(píng)注,往往起提供編寫程式的日期、編寫人、解釋程式代碼的作用。其根本目的是為程式的閱讀和修改提供資訊,提高程式的可讀性。
返回目錄5.3程式續(xù)行當(dāng)一條語(yǔ)句過(guò)長(zhǎng)時(shí),為編寫及閱讀方便,可以將它分為多行書寫,在行尾加一個(gè)空格和一個(gè)續(xù)行符(_)表示該語(yǔ)句在本行未寫完,轉(zhuǎn)到下一行繼續(xù)。
返回目錄5.4一行中的多條語(yǔ)句多條較短語(yǔ)句可以寫在一行,語(yǔ)句之間加冒號(hào)(:)隔開(kāi)。
返回目錄5.5程式流程
程式流指在一個(gè)子過(guò)程或函數(shù)中指令的執(zhí)行次序。一般情況程式流從程式的頂端一行一行地向下流動(dòng)。
返回目錄5.5.1順序結(jié)構(gòu)順序結(jié)構(gòu)的流程如圖5-1所示,從上往下,依次執(zhí)行。圖5-1順序結(jié)構(gòu)的流程5.5.2Goto語(yǔ)句分支是從程式的某一行到另一行的直接轉(zhuǎn)移。它有兩種形式:無(wú)條件分支和條件分支。無(wú)條件分支用Goto語(yǔ)句實(shí)現(xiàn)。下麵介紹Goto語(yǔ)句及用Goto語(yǔ)句構(gòu)成的迴圈。Goto語(yǔ)句為無(wú)條件轉(zhuǎn)向語(yǔ)句,它的一般形式為
Goto語(yǔ)句標(biāo)號(hào)或Goto行號(hào)5.5.3條件判斷在VB中由以下語(yǔ)句實(shí)現(xiàn):
If<條件運(yùn)算式>Then<一條語(yǔ)句>
If<條件運(yùn)算式>Then<語(yǔ)句塊>EndIf
If<條件運(yùn)算式>Then<語(yǔ)句塊>Else<一條語(yǔ)句>
If<條件運(yùn)算式>Then<語(yǔ)句塊>ElseIf
SelectCase<測(cè)試運(yùn)算式>Case運(yùn)算式1
程式段
Case運(yùn)算式2
程式段
…………Caseelse
程式段
Endselect1.If…Then語(yǔ)句If…Then的語(yǔ)法規(guī)則如下:
If條件式Then語(yǔ)句2.If…Then…EndIf語(yǔ)句If…Then…EndIf語(yǔ)句的語(yǔ)法規(guī)則如下:If條件式Then
語(yǔ)句EndIf3.If…Then…Else語(yǔ)句If…Then…Else語(yǔ)句的語(yǔ)法規(guī)則如下:If條件式Then
語(yǔ)句1Else
語(yǔ)句2EndIf4.If…Then…ElseIf語(yǔ)句If…Then…ElseIf語(yǔ)句的語(yǔ)法規(guī)則如下:If條件式1Then
語(yǔ)句1ElseIf條件式2Then
語(yǔ)句2EndIf5.SelectCase語(yǔ)句多重判斷雖然可以用If…Then…Else來(lái)完成,但是判斷的層次太多時(shí),不僅編寫困難,而且可讀性差,不易維護(hù)。
5.5.4迴圈迴圈是一組重複執(zhí)行的指令,重複次數(shù)由條件決定。如果是無(wú)條件迴圈,循環(huán)體代碼將永無(wú)休止地執(zhí)行下去(即死迴圈),這種情況當(dāng)然應(yīng)該避免。指定迴圈的方法有以下兩種,一是指定一個(gè)條件式,一旦運(yùn)算式的值為True(或者是False)就退出迴圈;另一種是指定迴圈次數(shù)。
VB採(cǎi)用下列語(yǔ)句實(shí)現(xiàn)迴圈:
Do…Loop
For…Next
ForEach…Next1.Do…Loop語(yǔ)句
Do…Loop語(yǔ)句是最常用且最有效的迴圈結(jié)構(gòu)。它有當(dāng)型迴圈和直到型迴圈兩種形式。(1)當(dāng)型迴圈(先判斷,後執(zhí)行)語(yǔ)法規(guī)則如下:Do[{While|Until}條件式][語(yǔ)句][ExitDo]'在特定條件下退出迴圈
[語(yǔ)句]Loop(2)直到型迴圈(先迴圈,後判斷)語(yǔ)法規(guī)則如下:Do[語(yǔ)句][ExitDo]'在特定條件下退出迴圈
[語(yǔ)句]Loop[{While|Until}條件式](3)Do…Loop語(yǔ)句的四種結(jié)構(gòu)①DoWhile條件式
[語(yǔ)句]Loop②DoUntil條件式
[語(yǔ)句]Loop③Do [語(yǔ)句]LoopWhile條件式④Do [語(yǔ)句]LoopUntil條件式2.For…Next(1)For…Next語(yǔ)法使用迴圈時(shí),若不知道程式中迴圈的次數(shù),可用Do…Loop語(yǔ)句,若知道迴圈的次數(shù),可用For…Next語(yǔ)句。
(2)For迴圈的嵌套迴圈語(yǔ)句和If…Then…EndIf結(jié)構(gòu)一樣有嵌套結(jié)構(gòu),F(xiàn)or迴圈的嵌套結(jié)構(gòu)很簡(jiǎn)單,就是在Next後一定要加上相應(yīng)的標(biāo)號(hào)。
3.ForEach…NextForEach…Next迴圈是重複集合對(duì)象或數(shù)組中的每一個(gè)元素,執(zhí)行迴圈的語(yǔ)句。其語(yǔ)法規(guī)則如下:ForEach元素In集合
[語(yǔ)句][ExitFor]'在特定條件下退出迴圈
[語(yǔ)句]Next[元素](1)新建文本檔(2)啟動(dòng)新工程、添加代碼(3)運(yùn)行程式4.While…Wend語(yǔ)句它的語(yǔ)法為:While條件式 語(yǔ)句Wend6.1模塊6.1.1VCR應(yīng)用程式的結(jié)構(gòu)
VCR是一個(gè)對(duì)電視機(jī)和錄影機(jī)組合體進(jìn)行模擬的應(yīng)用程式。它具有播放電視,選電視頻道,對(duì)電視節(jié)目錄影,顯示時(shí)間等功能。
圖6-1VCR程式包含的模組返回目錄VCR應(yīng)用程式的主窗體(frmVCR)是
VCR與電視螢?zāi)唤M合的可視圖像。它包括幾個(gè)對(duì)象,這些對(duì)象以現(xiàn)實(shí)世界中的圖景為模型。一組命令按鈕(cmdPlay、cmdRecord等等)模仿的是操作
VCR的按鈕。圖6-2VCR應(yīng)用程式的主窗體6.1.2各種模組類型
VB代碼存儲(chǔ)在模組中。模組有三種類型:窗體模組、標(biāo)準(zhǔn)模組和類模組。(1)聲明??蓪⒊?shù)、類型、變數(shù)和DLL(動(dòng)態(tài)鏈接庫(kù))過(guò)程的聲明放在窗體、類或標(biāo)準(zhǔn)模組的模組級(jí)。(2)過(guò)程。子過(guò)程、函數(shù)過(guò)程或者屬性過(guò)程,過(guò)程包含可以作為單元來(lái)執(zhí)行的代碼片段。1.窗體模組窗體模組(檔擴(kuò)展名為
.FRM)是大多數(shù)
VB應(yīng)用程式的基礎(chǔ)。
2.標(biāo)準(zhǔn)模組標(biāo)準(zhǔn)模組(檔擴(kuò)展名為
.BAS)是應(yīng)用程式內(nèi)其他模組訪問(wèn)的過(guò)程和聲明的容器。
(1)使用標(biāo)準(zhǔn)模組當(dāng)編寫較長(zhǎng)的程式時(shí),很可能會(huì)遇到一些使用相同變數(shù)和例程的窗體及事件過(guò)程。
(2)創(chuàng)建標(biāo)準(zhǔn)模組要在程式中創(chuàng)建新的標(biāo)準(zhǔn)模組,那麼單擊工具條“添加窗體”(AddForm)按鈕上的下箭頭並單擊“模組”(Module),或者單擊“工程”菜單中的“添加模組”(AddModule)菜單項(xiàng)。6.1.3使用“代碼編輯器”1.自動(dòng)完成編碼
VB能自動(dòng)填充語(yǔ)句、屬性和參數(shù),這些性能使編寫代碼更加方便。
2.書簽在“代碼編輯器”中書簽可用來(lái)標(biāo)記代碼的某些行,以便以後可以很容易地返回這些行。
3.模組級(jí)別在模組的聲明部分中描述代碼。
6.2過(guò)程6.2.1過(guò)程概述將程式分割成較小的邏輯部件就可以簡(jiǎn)化程式設(shè)計(jì)任務(wù),稱這些部件為過(guò)程,它們可以變成增強(qiáng)和擴(kuò)展
VB的構(gòu)件。
返回目錄VB中有如下的過(guò)程:函數(shù)過(guò)程。
子過(guò)程。
屬性過(guò)程。
通用過(guò)程。用過(guò)程編程有如下的好處:消除了重複語(yǔ)句行。使程式更易閱讀。
簡(jiǎn)化了程式開(kāi)發(fā)。
其他程式可重複使用該通用過(guò)程。
擴(kuò)展VB語(yǔ)言。6.2.2Sub過(guò)程1.子過(guò)程的語(yǔ)法(1)子過(guò)程語(yǔ)法說(shuō)明[Private|Public|Friend][Static]SubName[(Arglist)][語(yǔ)句][ExitSub][語(yǔ)句]
EndSub(2)調(diào)用子過(guò)程在程式中調(diào)用子過(guò)程需要指明該過(guò)程的名稱,然後列出該子過(guò)程所要求的參數(shù)。
2.通用過(guò)程通用過(guò)程告訴應(yīng)用程式如何完成一項(xiàng)指定的任務(wù)。
3.事件過(guò)程當(dāng)VB中的對(duì)象對(duì)一個(gè)事件的發(fā)生做出認(rèn)定時(shí),便自動(dòng)用相應(yīng)事件的名字調(diào)用該事件的過(guò)程。
6.2.3Function(函數(shù))過(guò)程1.函數(shù)過(guò)程的語(yǔ)法在Sub過(guò)程與Function過(guò)程之間有三點(diǎn)區(qū)別:(1)一般說(shuō)來(lái),讓較大的語(yǔ)句或運(yùn)算式的右邊包含函數(shù)過(guò)程名和參數(shù)(returnvalue=function),這就調(diào)用了函數(shù)。(2)與變數(shù)完全一樣,函數(shù)過(guò)程有數(shù)據(jù)類型。(3)給
procedurename自身賦一個(gè)值,就可返回這個(gè)值。
2.調(diào)用函數(shù)過(guò)程在事件過(guò)程中調(diào)用函數(shù)TotalTax時(shí),使用與下文相類似的語(yǔ)句:lblTaxes.Caption=TotalTax(500)(一般來(lái)說(shuō),函數(shù)都賦值給某些變數(shù)或?qū)傩?。該語(yǔ)句計(jì)算價(jià)值500美元的貨物應(yīng)納稅額的總計(jì),然後將結(jié)果賦值給lblTaxes對(duì)象的標(biāo)題(Caption)屬性。3.遞歸函數(shù)過(guò)程遞歸是函數(shù)直接調(diào)用自己或函數(shù)之間相互調(diào)用的一種演算法。遞歸能使程式變的簡(jiǎn)潔易讀。
6.3過(guò)程的使用6.3.1過(guò)程的創(chuàng)建與使用
1.創(chuàng)建新過(guò)程要?jiǎng)?chuàng)建新的通用過(guò)程,在代碼編輯窗口輸入過(guò)程頭,並按下“回車”鍵。
2.選擇現(xiàn)有過(guò)程如果想在當(dāng)前模組中查看過(guò)程,在代碼編輯窗口的“對(duì)象框”中選擇“通用”,然後在“過(guò)程框”中選擇過(guò)程。
3.調(diào)用過(guò)程調(diào)用過(guò)程有諸多技巧,它們與過(guò)程的類型、位置以及在應(yīng)用程式中的使用方式有關(guān)。返回目錄4.使用標(biāo)準(zhǔn)模組中的過(guò)程如果過(guò)程名是唯一的,則不必在調(diào)用時(shí)加模組名。5.GoSub…Return過(guò)程
GoSub...Return語(yǔ)句,在一個(gè)過(guò)程中跳到另一個(gè)副程式中執(zhí)行,執(zhí)行後再返回。
6.3.2向過(guò)程傳遞參數(shù)過(guò)程中的代碼通常需要某些關(guān)於程式狀態(tài)的資訊才能完成它的工作,資訊包括在調(diào)用過(guò)程時(shí)傳遞到過(guò)程內(nèi)的變數(shù),當(dāng)將變數(shù)傳遞到過(guò)程時(shí),稱變數(shù)為參數(shù)。1.參數(shù)的數(shù)據(jù)類型過(guò)程的參數(shù)缺省為Variant數(shù)據(jù)類型,不過(guò),也可以聲明參數(shù)為其他數(shù)據(jù)類型。2.按值傳遞參數(shù)按值傳遞參數(shù)時(shí),傳遞的只是變數(shù)的副本。3.按地址傳遞參數(shù)按地址傳遞參數(shù)是讓過(guò)程用變數(shù)的記憶體地址去訪問(wèn)實(shí)際變數(shù)的內(nèi)容。4.使用可選的參數(shù)在過(guò)程的參數(shù)列表中列入Optional關(guān)鍵字,就可以指定過(guò)程的參數(shù)為可選的。
5.傳值參數(shù)在討論子過(guò)程時(shí),已經(jīng)介紹了傳遞給過(guò)程的參數(shù)的兩種傳遞方式:按地址傳遞和按值傳遞。
6.ByVal關(guān)鍵字避免上述問(wèn)題的一個(gè)明顯做法是在過(guò)程中對(duì)所傳遞的變數(shù)不做修改,但是這一解決方案會(huì)增加程式代碼長(zhǎng)度,並且當(dāng)多名程式員一同工作時(shí)這種方法也被證明是不可靠的。
6.4常見(jiàn)標(biāo)準(zhǔn)函數(shù)6.4.1數(shù)學(xué)函數(shù)6.4.2日期函數(shù)6.4.3字串操作函數(shù)返回目錄6.4.4數(shù)據(jù)轉(zhuǎn)換函數(shù)
asc(s):將字串的第一個(gè)字母的代碼返回。
Chr(n):根據(jù)字元代碼n返回相應(yīng)的字元構(gòu)成的字串.例如:chr(65)的結(jié)果為A.Format(e,s):e代表字串,s代表格式指令,根據(jù)s的指令將e格式化。
Hex(n):返回n的16進(jìn)制的字串。
Oct(n):返回n的8進(jìn)制的字串。
RGB(n,n,n):返回一個(gè)代表RGB顏色的常整數(shù)。
Str(n):返回?cái)?shù)字運(yùn)算式n相等的字串。
Val(string):返回一個(gè)string所代表的數(shù)字串的數(shù)字。6.4.5用戶互動(dòng)式函數(shù)1.Inputbox
許多應(yīng)用程式要求用戶輸入數(shù)據(jù),Inputbox()函數(shù)提供了一種較好的方法,在前面的章節(jié)中已經(jīng)提到過(guò),現(xiàn)在對(duì)Inputbox函數(shù)進(jìn)行詳細(xì)說(shuō)明。圖6-27Inputbox函數(shù)建立的輸入對(duì)話框2.Msgbox函數(shù)Inputbox是輸入函數(shù),Msgbox是輸出函數(shù)。(1)Msgbox函數(shù)的語(yǔ)法說(shuō)明
Msgbox函數(shù)的語(yǔ)法如下:
Msgbox(Prompt,[ButtonsasVbmsgboxstle=Vbokonly],[Title],[Helpfile],[Context])_asVbmsgboxresult
(2)Msgbox函數(shù)舉例6.4.6其他常用函數(shù)1.Array()返回含有數(shù)組的變體。
2.Callbyname()執(zhí)行對(duì)象的一個(gè)方法或設(shè)定返回對(duì)象的屬性。
3.Choose()在參數(shù)列表中選擇一個(gè)數(shù)據(jù),並返回該數(shù)據(jù)。4.Command()返回啟動(dòng)VB系統(tǒng)或用VB開(kāi)發(fā)的可執(zhí)行程式的命令行中的參數(shù)。5.Dir()
返回指定範(fàn)本或檔屬性的檔,目錄檔夾的名稱,或驅(qū)動(dòng)器的卷標(biāo)。6.Filter()
基於指定的過(guò)濾標(biāo)誌,返回字串?dāng)?shù)組的子集。7.Getobject()
返回ActiveX組件提供對(duì)象的引用。8.Getsetting()
返回應(yīng)用程式專案的所有註冊(cè)表設(shè)置及其對(duì)應(yīng)值。9.Input()
返回字串變數(shù),包含的字串取自以input或binary方式打開(kāi)的檔。10.Ismissing()
返回布爾型數(shù)據(jù),表示是否已經(jīng)把可選的參數(shù)傳遞給某個(gè)過(guò)程。
11.Int()
返回?cái)?shù)值的整數(shù)部分,這個(gè)函數(shù)結(jié)合Rnd()函數(shù)能產(chǎn)生在某個(gè)範(fàn)圍的整數(shù)。
12.Join()
把包含在數(shù)組中的字串合成一個(gè)字串,並返回這個(gè)字串。13.Loadpicture()
把圖片裝入窗體的某些控件中。14.Partition()
返回字元型數(shù)據(jù),表示一個(gè)數(shù)值在一個(gè)系列範(fàn)圍中的位置。15.Qbcolor()
返回長(zhǎng)整型,表示對(duì)應(yīng)於指定顏色號(hào)的RGB顏色代碼。16.Replace()
返回一個(gè)字串中指定的子串被另一個(gè)子串替換指定次數(shù)的結(jié)果。17.Round()
返回一個(gè)數(shù)舍入到指定小數(shù)位後的結(jié)果。18.Rnd()
產(chǎn)生0~1亂數(shù)。
19.Shell()
運(yùn)行可執(zhí)行程式。20.Switch()
計(jì)算一系列的運(yùn)算式,並返回與第一個(gè)為True的運(yùn)算式相關(guān)的變體數(shù)據(jù)或運(yùn)算式。21.Typename()
返回字串型數(shù)據(jù),表示變數(shù)的資訊。22.Isnull()
這個(gè)函數(shù)用來(lái)判斷指針是否為空。23.Isempty()
判斷字串是否為空。
7.1標(biāo)籤(Label)
標(biāo)籤主要用來(lái)顯示提示資訊,可用作標(biāo)題、欄目名或輸入輸出區(qū)域的標(biāo)識(shí),也可作為結(jié)果資訊輸出區(qū)域,它常與Text控件一起使用。返回目錄7.1.1常用屬性1.Caption屬性Caption屬性的內(nèi)容就是標(biāo)籤所要顯示的字串內(nèi)容。
2.Font屬性Font表示控件的字體、字形樣式、字體大小。3.ForColor屬性決定字串本身的顏色。4.BackColor屬性決定字串的背景顏色。5.BackStyle屬性決定字串的背景模式。6.BorderStyle屬性決定標(biāo)籤要不要加框。0表示無(wú)邊框,1表示單線框,缺省為0。7.Enabled屬性表示控件是否能使用,它的可能取值有兩個(gè):True:表示能使用。False:表示禁止使用(控件顯示為灰色)。8.Visible屬性表示控件是否可見(jiàn),它有兩個(gè)取值:True表示控件可見(jiàn);False表示控件不可見(jiàn)。9.Top,Left,Width,Height屬性表示控件在窗體中的位置和尺寸。10.Alignment屬性設(shè)置或返回控件中文本的對(duì)齊方式。0代表左對(duì)齊,1代表右對(duì)齊,2代表居中。11.Autosize屬性返回或設(shè)置控件是否自動(dòng)改變大小以顯示全部?jī)?nèi)容。12.UseMnemonic屬性返回或設(shè)置用以指定是否要在label控件的caption屬性的文本中定義訪問(wèn)鍵。7.1.2常用事件1.Click事件
Click事件在單擊滑鼠或按下快捷鍵時(shí)發(fā)生,常與TextBox控件一起使用,已獲得輸入焦點(diǎn)。
2.Change事件Change事件指示label控件的內(nèi)容已經(jīng)改變。
7.2文本框(TextBox)
文本框既可接受用戶的輸入,又可顯示程式的資訊。
7.2.1MultiLine屬性
MultiLine屬性用於設(shè)置TextBox控件能否輸入和顯示多行文本,它的語(yǔ)法結(jié)構(gòu)如下所示:object.MultiLine[=boolean]True:設(shè)為“多行文本框”,即允許輸入和顯示多行文本。
False:設(shè)為“單行文本框”,即所有的文本都限制在一行之內(nèi)。返回目錄
將TextBox控件的MultiLine屬性設(shè)置為True,就可以在控件中輸入和顯示多行文本,如果同時(shí)設(shè)置了控件的ScrollBars屬性,那麼就可以在TextBox控件上定制垂直和水準(zhǔn)的滾動(dòng)條。表7-2 TextBox控件常用的屬性Alignment屬性MouseIcon屬性Appearance屬性MousePointer屬性BackColor屬性ForeColor屬性MultiLine屬性BorderStyle屬性Name屬性Container屬性O(shè)LEDragMode屬性DataChanged屬性O(shè)LEDropMode屬性DataField屬性O(shè)LEDropMode屬性DataSource屬性Parent屬性DragIcon屬性PasswordChar屬性DragMode屬性ScrollBars屬性Enabled屬性SelLength屬性SelStart屬性SelText屬性Font屬性FontBold屬性FontItalic屬性FontStrikethru屬性FontUnderline屬性TabIndex屬性FontName屬性TabStop屬性FontSize屬性Tag屬性Height屬性Width屬性Text屬性HelpContextID屬性ToolTipText屬性HideSelection屬性Visible屬性hWnd屬性WhatsThisHelpID屬性Index屬性Left屬性Top屬性LinkItem屬性LinkMode屬性Locked屬性LinkTimeout屬性LinkTopic屬性MaxLength屬性
7.2.2SelStart屬性SelStart屬性用於設(shè)置所選擇的文本的起始點(diǎn)。它的語(yǔ)法結(jié)構(gòu)如下所示:object.SelStart[=index]7.3命令按鈕(CommandButton)CommandButton控件可以開(kāi)始、中斷或者結(jié)束一個(gè)進(jìn)程,當(dāng)控件處?kù)队行У臓顟B(tài)時(shí),單擊CommandButton控件就會(huì)產(chǎn)生一種被按下的感覺(jué),所以通常情況下CommandButton控件都是作為一個(gè)按鈕的形式出現(xiàn)在窗體中,但是有些時(shí)候還可以把它作為其他控件的容器。
返回目錄7.3.1常用屬性1.DisabledPicture屬性
DisabledPicture屬性用於設(shè)置在控件無(wú)效時(shí)對(duì)一個(gè)圖片的引用,該圖片在控件處?kù)稛o(wú)效狀態(tài)時(shí)顯示在控件中。圖7-18程式運(yùn)行的結(jié)果2.DownPicture屬性
DownPicture屬性用於設(shè)置在控件被單擊並處?kù)秹合聽(tīng)顟B(tài)時(shí)對(duì)一個(gè)圖像檔的引用,該圖像在控件處?kù)秹合碌臓顟B(tài)時(shí)顯示在控件中。圖7-19程式運(yùn)行結(jié)果3.UserMaskColor屬性、MaskColor屬性
MaskColor屬性用於返回或設(shè)置一個(gè)在CommandButton控件的圖像檔中作為透明的顏色。圖7-20設(shè)置控件的透明區(qū)域7.4圖片框(PictureBox)
圖片框在工具箱中的圖示是,可以顯示來(lái)自位圖、圖示或者元檔以及來(lái)自增強(qiáng)的元檔、JPEG或GIF檔的圖形。元檔將圖像作為與線、圓或多邊形一樣的圖形對(duì)象來(lái)存儲(chǔ),而
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 塑料薄膜生產(chǎn)線節(jié)能技術(shù)考核試卷
- 二零二五年度新能源電池技術(shù)保密合同3篇
- 2025年度生態(tài)環(huán)保圍墻建造與節(jié)能減排合同3篇
- 二零二五年度塔吊租賃及現(xiàn)場(chǎng)安全監(jiān)督合同樣本3篇
- 2025年度銷售業(yè)務(wù)員市場(chǎng)調(diào)研與分析支持合同3篇
- 2025年房屋產(chǎn)權(quán)轉(zhuǎn)移協(xié)議3篇
- 二零二五年度大渡口區(qū)吸污車租賃與廢棄物回收利用協(xié)議2篇
- 2025年房產(chǎn)廣告媒體采購(gòu)協(xié)議2篇
- 2025年度藝人經(jīng)紀(jì)合同履行保證協(xié)議2篇
- 2025-2030全球炭黑填充母粒行業(yè)調(diào)研及趨勢(shì)分析報(bào)告
- 農(nóng)民工工資表格
- 【寒假預(yù)習(xí)】專題04 閱讀理解 20篇 集訓(xùn)-2025年人教版(PEP)六年級(jí)英語(yǔ)下冊(cè)寒假提前學(xué)(含答案)
- 2024年突發(fā)事件新聞發(fā)布與輿論引導(dǎo)合同
- 地方政府信訪人員穩(wěn)控實(shí)施方案
- 小紅書推廣合同范例
- 商業(yè)咨詢報(bào)告范文模板
- 幼兒園籃球課培訓(xùn)
- AQ 6111-2023個(gè)體防護(hù)裝備安全管理規(guī)范知識(shí)培訓(xùn)
- (正式版)SHT 3227-2024 石油化工裝置固定水噴霧和水(泡沫)噴淋滅火系統(tǒng)技術(shù)標(biāo)準(zhǔn)
- GB/T 156-2017標(biāo)準(zhǔn)電壓
- PPT溝通的藝術(shù)課件
評(píng)論
0/150
提交評(píng)論