1.1 Visual Basic 概述
1.Visual Basic是什么 Visual Basic(簡稱VB)是Microsoft公司開發(fā)的一種通用的基于對象的程序設(shè)計語言。 “Visual” 指的是開發(fā)圖形用戶界面 (GUI) 的方法——不需編寫大量代碼去描述界面元素的外觀和位置,而只要把預(yù)先建立的對象add到屏幕上的一點即可。 “Basic”指的是 BASIC (Beginners All-Purpose Symbolic Instruction Code) 語言,一種在計算技術(shù)發(fā)展歷史上應(yīng)用得最為廣泛的語言。Visual Basic 在原有 BASIC 語言的基礎(chǔ)上進一步發(fā)展,至今包含了數(shù)百條語句、函數(shù)及關(guān)鍵詞,其中很多和 Windows GUI 有直接關(guān)系。專業(yè)人員可以用 Visual Basic 實現(xiàn)其它任何 Windows 編程語言的功能,而初學(xué)者只要掌握幾個關(guān)鍵詞就可以建立實用的應(yīng)用程序。Visual Basic Scripting Edition (VBScript) 是廣泛使用的腳本語言,它是 Visual Basic 語言的子集,可嵌入HTML語言中,用于網(wǎng)頁設(shè)計,如ASP(Active Server Page)文件。 VB簡單易學(xué),通用性強,用途廣泛。
2. VB的功能 VB可以用于可以開發(fā)多媒體、數(shù)據(jù)庫、網(wǎng)絡(luò)、圖形等方面的應(yīng)用程序。 ¨ 數(shù)據(jù)訪問特性允許對包括 Microsoft SQL Server 和其它企業(yè)數(shù)據(jù)庫在內(nèi)的大部分數(shù)據(jù)庫格式建立數(shù)據(jù)庫和前端應(yīng)用程序,以及可調(diào)整的服務(wù)器端部件。 ¨ 有了 ActiveX(TM) 技術(shù)就可使用其它應(yīng)用程序提供的功能,例如 Microsoft Word 字處理器,Microsoft Excel 電子數(shù)據(jù)表及其它 Windows 應(yīng)用程序。 ¨ Internet 能力強大,很容易在應(yīng)用程序內(nèi)通過 Internet 或 intranet訪問文檔和應(yīng)用程序,或者創(chuàng)建 Internet 服務(wù)器應(yīng)用程序。 ¨ 已完成的應(yīng)用程序是使用Visual Basic 虛擬機真正 .exe 文件,可以自由發(fā)布。
3. VB的發(fā)展 VB是伴隨Windows操作系統(tǒng)而發(fā)展的,在中國使用較廣的版本有VB4.0、VB5.0、VB6.0。 VB4.0是為配合WIN95的問世于1995年推出的,既可用于編寫WIN3.X平臺的16位應(yīng)用程序也可編寫WIN95平臺的32位應(yīng)用程序;VB5.0主要用于編寫WIN95平臺的32位應(yīng)用程序,較之VB4.0主要擴展了數(shù)據(jù)庫、ActiveX和Internet方面的功能;VB6.0是與WIN98配合于1998年推出的,進一步加強了數(shù)據(jù)庫、Internet和創(chuàng)建控件方面的功能。
4. VB中幾個常用術(shù)語 工程(Project): 是指用于創(chuàng)建一個應(yīng)用程序的文件的集合。 對象(Object): 可控制的某個東西,VB中主要有兩類對象:窗體和控件。 窗體(Form): 應(yīng)用程序的用戶界面,即windows。 控件(Control): 指的是各種按鈕、標簽、文本框等。 屬性(Property):是指對象的特征,如大小、標題或顏色。 ActiveX :ActiveX 是基于 Component Object Model (COM) 的可視化控件結(jié)構(gòu)的商標名稱。它是一種封裝技術(shù),提供封裝 COM 組件并將其置入應(yīng)用程序(如Web 瀏覽器)的一種方法。 Components Object Model (COM): 是軟件組件互相通訊的一種方式。它是一種二進制和網(wǎng)絡(luò)標準,允許任意兩個組件互相通訊,而不管它們是在什么計算機上運行(只要計算機是相連的),不管各計算機運行的是什么操作系統(tǒng)(只要該操作系統(tǒng)支持 COM),也不管該組件是用什么語言編寫的。
5. VB的系統(tǒng)特性 (1)工程限制 1)代碼限制: 可被加載到窗體、類或標準模塊的代碼總數(shù)限于 65,534 行。一行代碼限于 1023 個字節(jié)。在一行中的實際文本之前最多只能有 256 個空格的前導(dǎo),在一個邏輯行中最多只能有 25 個續(xù)行符 ( _)。 2)過程、類型和變量 對每個模塊的過程數(shù)沒有限制。每個過程可包含至多 64K 的代碼。如果過程或模塊超過這一限制,Visual Basic 便產(chǎn)生編譯時間錯誤。如果遇到這種錯誤,可將特別大的過程分割成若干個較小的過程,或?qū)⒛K級聲明移到另一模塊,來避免此類錯誤發(fā)生。 Visual Basic 用表來保存代碼中的標識符名(變量、過程、常量等)。每個表限于 64K。 3)動態(tài)鏈接庫聲明表 每個窗體和代碼模塊使用一個描述動態(tài)鏈接庫入口點的結(jié)構(gòu)的表。每個結(jié)構(gòu)約 40 個字節(jié),表的大小限于 64K,形成每個模塊大約有 1500 個聲明。 4)工程名表 整個應(yīng)用程序用一張包含所有名稱的表。這些名稱包括: 常量名 、 變量名 、 自定義的類型定義名、 模塊名、 DLL 過程聲明名。 對工程名表總大小沒有限制,但是區(qū)分大小寫的條目不得超過 32K。如果超過了 32K 的限制,可以在不同的模塊中重新使用 private 標識符以限制區(qū)分大小寫的條目數(shù)到達 32K。 5)輸入表 在不同的模塊中每引用一個標識符,便在輸入表中創(chuàng)建一個條目。每一個這樣的入口最小是 24 字節(jié),但限于 64K,這樣每個模塊大約可以有 2000 個引用。 6)模塊條目表 該表中每個模塊最多達 125 個字節(jié),但有 64K 的總限制,這樣每個工程大約可以產(chǎn)生 400 個模塊。 VB 中的變量名不多于 255 個字符,而窗體、控件、模塊和類名不多于 40 個字符。
(2)工程文件格式
VB 在創(chuàng)建和編譯工程時要產(chǎn)生許多文件,分為:設(shè)計時文件、雜項開發(fā)文件和運行時文件。
設(shè)計時文件是工程的建造塊,例如基本模塊 (.bas) 和窗體模塊 (.frm)。
雜項文件是由 Visual Basic 開發(fā)環(huán)境中的各種不同的進程和函數(shù)產(chǎn)生的,例如打包和展開向?qū)膶傥募?/SPAN> (.dep)。
開發(fā)應(yīng)用程序時會產(chǎn)生各種設(shè)計時文件和其它雜項文件,如下表所列:
擴展名 |
描述 |
擴展名 |
描述 |
.bas |
基本模塊 |
.frm |
窗體文件 |
.cls |
類模塊 |
.frx |
二進制窗體文件 |
.res |
資源文件 |
.vbp |
Visual Basic 工程文件 |
.ctx |
用戶控件的二進制文件 |
.pgx |
二進制屬性頁文件 |
.dca |
活動的設(shè)計器的高速緩存 |
.ctl |
用戶控件文件 |
.ddf |
打包和展開向?qū)?/SPAN> CAB 信息文件 |
.tlb |
遠程自動化類型庫文件 |
.dep |
打包和展開向?qū)膶傥募?/SPAN> |
.vbg |
Visual Basic 組工程文件 |
.dob |
ActiveX 文檔窗體文件 |
.vbl |
控件許可文件 |
.dox |
ActiveX 文檔二進制窗體文件 |
.dws |
部署向?qū)_本文件 |
.dsr |
活動的設(shè)計器文件 |
.vbr |
遠程自動化注冊文件 |
.dsx |
活動的設(shè)計器的二進制文件 |
.vbw |
Visual Basic 工程工作空間文件 |
.log |
加載錯誤的日志文件 |
.vbz |
向?qū)Оl(fā)射文件 |
.oca |
控件類型庫緩存文件 |
.wct |
WebClass HTML 模板 |
.pag |
屬性頁文件 |
|
|
編譯應(yīng)用程序時,所有必須的設(shè)計時文件都被包括在運行時可執(zhí)行文件中。運行時文件如下表所列:
擴展名 |
描述 |
.dll |
運行中的 ActiveX 部件 |
.exe |
可執(zhí)行文件或 ActiveX 部件 |
.ocx |
ActiveX 控件 |
.vbd |
ActiveX 文檔狀態(tài)文件 |
.wct |
WebClass HTML 模板 |
1.2 VB 6.0 的集成開發(fā)環(huán)境簡介
VB 集成開發(fā)環(huán)境 (IDE——Integrated Developing Environment ) 由以下元素組成:
1. 標題欄
用于顯示正在開發(fā)或調(diào)試的工程名和系統(tǒng)的工作狀態(tài)(設(shè)計態(tài)、運行態(tài)、中止態(tài))。
2. 菜單欄
用于顯示所使用的 Visual Basic 命令。VB6.0標準菜單包括:
3. 工具欄
在編程環(huán)境下用于快速訪問常用命令。缺省情況下,啟動 VB后顯示“標準”工具欄,附加的編輯、窗體設(shè)計和調(diào)試的工具 欄可以從“視圖”菜單上的“工具欄”命令中移進或移出。
4. 窗體設(shè)計器
用來設(shè)計應(yīng)用程序的界面。啟動VB后,窗體設(shè)計器中自動出現(xiàn)一個名為Form1的空白窗體,可以在該窗體中添加控件、圖形和圖片等來創(chuàng)建所希望的外觀,窗體的外觀設(shè)計好后,從菜單中選擇“文件”→“保存窗體”→在保存對話框中給出合適的文件名(注意擴展名),并選擇所需的保存位置→確定。需要再設(shè)計另一個窗體時,單擊工具欄上的“添加窗體”按鈕即可。
5. 控件(工具)箱
由一組控件按鈕組成,用于設(shè)計時在窗體中放置控件。除了缺省的工具箱布局之外,還可以通過從上下文菜單中選定“添加選項卡”并在結(jié)果選項卡中添加控件來創(chuàng)建自定義布局。
6. 彈出式(上下文)菜單
在要使用的對象上單擊鼠標右鍵即可打開快捷菜單,其上會出現(xiàn)與當(dāng)前對象相關(guān)的經(jīng)常執(zhí)行的操作,以加快操作速度。
7. 工程管理器窗口
用于瀏覽工程中所包含的窗體和模塊,還可以從中查看代碼、查看對象。
8. 屬性窗口
是VB中一個比較復(fù)雜的窗口,其中列出了對選定窗體和控件的屬性設(shè)置值。VB中正是通過改變屬性來改變對象的特征,如大小、標題或顏色。
9. 對象瀏覽器
列出工程中有效的對象,并提供在編碼中漫游的快速方法?梢允褂谩皩ο鬄g覽器”瀏覽在 VB中的對象和其它應(yīng)用程序,查看對那些對象有效的方法和屬性,并將代碼過程粘貼進自己的應(yīng)用程序。
10. 對象瀏覽器
右擊窗體中的對象、從工程管理器中點“查看代碼”按鈕。
11.窗體布局窗口
Form Layout window允許使用表示屏幕的小圖象來布置應(yīng)用程序中各窗體的位置。
12. 立即、本地和監(jiān)視窗口這些附加窗口是為調(diào)試應(yīng)用程序提供的,它們只在 IDE 之中運行應(yīng)用程序時才有效。
1.3 面向?qū)ο蟪绦蛟O(shè)計的基本概念
1.基本術(shù)語
(1) 對象和對象類
對象是代碼和數(shù)據(jù)的組合,可以作為一個單位來處理。對象可以是應(yīng)用程序的一部分,比如可以是控件或窗體。整個應(yīng)用程序也是一個對象。在 VB中可能用到的幾種類型的對象:
示例 |
描述 |
命令按鈕 |
窗體上的控件,象命令按鈕和框架,它們都是對象。 |
窗體 |
Visual Basic 工程中的每一個窗體都是獨立的對象。 |
數(shù)據(jù)庫 |
數(shù)據(jù)庫是對象,并且還包含其他對象,如字段、索引等。 |
圖表 |
Microsoft Excel 中的圖表是對象。 |
VB中的每個對象都是用類定義的。用餅干模子和餅干之間的關(guān)系作比,就會明白對象和它的類之間的關(guān)系。餅干模子是類。它確定了每塊餅干的特征,比如大小和形狀。用類創(chuàng)建對象,對象就是餅干。類是面向?qū)ο蟪绦蛟O(shè)計的核心技術(shù),可以理解成一種定義了對象行為和外觀的模板;把對象看作是類的原原本本的復(fù)制品,
類具有繼承性、封裝性、多態(tài)性、抽象性。
(2) 屬性
屬性是對對象特性的描述,VB為每一類對象都規(guī)定了若干屬性,設(shè)計中可以改變具體對象的屬性值。比如窗體的背景顏色、高度與寬度。
(3) 事件(Event)
事件是發(fā)生在對象上的動作。事件的發(fā)生不是隨意的,某些事件僅發(fā)生在某些對象上。
在VB中事件的調(diào)用形式是:
Private Sub對象名_事件名
(事件內(nèi)容)
End Sub
(4) 方法(Method)
方法指的是控制對象動作行為的方式。它是對象本身內(nèi)含的函數(shù)或過程,它也是一個動作,是一個簡單的不必知道細節(jié)的無法改變的事件,但不稱作事件;同樣,方法也不是隨意的,一些對象有一些特定的方法。在VB里方法的調(diào)用形式是:
對象名.方法名
2. 屬性、方法和事件之間的關(guān)系
VB 對象具有屬性、方法和事件。屬性是描述對象的數(shù)據(jù);方法告訴對象應(yīng)做的事情;事件是對象所產(chǎn)生的事情,事件發(fā)生時可以編寫代碼進行處理。
VB 的窗體和控件是具有自己的屬性、方法和事件的對象?梢园褜傩钥醋饕粋對象的性質(zhì),把方法看作對象的動作,把事件看作對象的響應(yīng)。
日常生活中的對象,如小孩玩的氣球同樣具有屬性、方法和事件。氣球的屬性包括可以看到的一些性質(zhì),如它的直徑和顏色。其它一些屬性描述氣球的狀態(tài)(充氣的或未充氣的)或不可見的性質(zhì),如它的壽命。通過定義,所有氣球都具有這些屬性;這些屬性也會因氣球的不同而不同。
氣球還具有本身所固有的方法和動作。如:充氣方法(用氦氣充滿氣球的動作),放氣方法(排出氣球中的氣體)和上升方法(放手讓氣球飛走)。所有的氣球都具備這些能力。
氣球還有預(yù)定義的對某些外部事件的響應(yīng)。例如,氣球?qū)Υ唐扑氖录憫?yīng)是放氣,對放手事件的響應(yīng)是升空。
在VB程序設(shè)計中,基本的設(shè)計機制就是:改變對象的屬性、使用對象的方法、為對象事件編寫事件過程。程序設(shè)計時要做的工作就是決定應(yīng)更改哪些屬性、調(diào)用哪些方法、對哪些事件作出響應(yīng),從而得到希望的外觀和行為。
3.事件驅(qū)動模型
在傳統(tǒng)的或“過程化”的應(yīng)用程序中,應(yīng)用程序自身控制了執(zhí)行哪一部分代碼和按何種順序執(zhí)行代碼。從第一行代碼執(zhí)行程序并按應(yīng)用程序中預(yù)定的路徑執(zhí)行,必要時調(diào)用過程。
在事件驅(qū)動的應(yīng)用程序中,代碼不是按照預(yù)定的路徑執(zhí)行,而是在響應(yīng)不同的事件時執(zhí)行不同的代碼片段。事件可以由用戶操作觸發(fā)、也可以由來自操作系統(tǒng)或其它應(yīng)用程序的消息觸發(fā)、甚至由應(yīng)用程序本身的消息觸發(fā)。這些事件的順序決定了代碼執(zhí)行的順序,因此應(yīng)用程序每次運行時所經(jīng)過的代碼的路徑都是不同的。
因為事件的順序是無法預(yù)測的,所以在代碼中必須對執(zhí)行時的“各種狀態(tài)”作一定的假設(shè)。當(dāng)作出某些假設(shè)時(例如,假設(shè)在運行來處理某一輸入字段的過程之前,該輸入字段必須包含確定的值),應(yīng)該組織好應(yīng)用程序的結(jié)構(gòu),以確保該假設(shè)始終有效(例如,在輸入字段中有值之前禁止使用啟動該處理過程的命令按鈕)。
在執(zhí)行中代碼也可以觸發(fā)事件。例如,在程序中改變文本框中的文本將引發(fā)文本框的 Change 事件。如果 Change 事件中包含有代碼,則將導(dǎo)致該代碼的執(zhí)行。如果原來假設(shè)該事件僅能由用戶的交互操作所觸發(fā),則可能會產(chǎn)生意料之外的結(jié)果。正因為這一原因,所以在設(shè)計應(yīng)用程序時理解事件驅(qū)動模型并牢記在心是非常重要的。
4.交互式開發(fā)
傳統(tǒng)的應(yīng)用程序開發(fā)過程可以分為三個明顯的步驟:編碼、編譯和測試代碼。但是 Visual Basic 與傳統(tǒng)的語言不同,它使用交互式方法開發(fā)應(yīng)用程序,使三個步驟之間不再有明顯的界限。
VB在編程者輸入代碼時便進行解釋,即時捕獲并突出顯示大多數(shù)語法或拼寫錯誤?雌饋砭拖笠晃粚<以诒O(jiān)視代碼的輸入。
除即時捕獲錯誤以外,VB 也在輸入代碼時部分地編譯該代碼。當(dāng)準備運行和測試應(yīng)用程序時,只需極短時間即可完成編譯。如果編譯器發(fā)現(xiàn)了錯誤,則將錯誤突出顯示于代碼中。這時可以更正錯誤并繼續(xù)編譯,而不需從頭開始。
由于 VB的交互特性,代碼運行的效果可以在開發(fā)時進行測試,而不必等到編譯完成以后。
1.4 利用VB開發(fā)應(yīng)用程序的一般步驟
一個VB程序也稱為一個工程,由窗體、標準模塊、自定義控件及應(yīng)用所需的環(huán)境設(shè)置組成。開發(fā)步驟一般如下:
1. 創(chuàng)建程序的用戶界面
2. 設(shè)置界面上各個對象的屬性
3. 編寫對象響應(yīng)事件的程序代碼
4. 保存工程
5. 測試應(yīng)用程序,排除錯誤
6. 創(chuàng)建可執(zhí)行程序
1.5 創(chuàng)建VB程序示例
實例名稱:VB歡迎你!
1.創(chuàng)建程序的用戶界面
2.設(shè)置界面上各個對象的屬性
控件 |
屬性 |
設(shè)置值 |
Option1 |
Caption |
上課 |
Option2 |
Caption |
復(fù)習(xí) |
|
BackColor |
&H00C0E0FF& |
|
Forecolor |
&H00FF0000& |
|
Font |
宋體 小四 |
Label1 |
Caption |
歡迎你學(xué)習(xí)VB。 |
|
Forecolor |
&H000000FF& |
|
Font |
隸書、二號 |
|
AutoSize |
True (自動調(diào)整外框大。 |
|
BackStyle |
0-Transparent ( 透明) |
Command1 |
Caption |
學(xué)習(xí)之道 |
3. 編寫對象響應(yīng)事件的程序代碼
雙擊各對象,在相應(yīng)的代碼窗口里輸入需要的代碼。
事件名稱 |
過程代碼 |
命令按鈕的單擊事件 |
Private Sub Command1_Click()
Option1.Visible = True
Option2.Visible = True
Label1.ForeColor = RGB(0, 0, 255)
Label1.Caption = " ? ? ?"
End Sub |
窗體的單擊事件 |
Private Sub Form_Click()
Form1.Picture = LoadPicture("d:\sj\abc.jpg")
Option1.Visible = False
Option2.Visible = False
Label1.ForeColor = RGB(255, 0, 0)
Label1.Caption = "預(yù)祝大家成功,干杯!"
End Sub |
窗體的雙擊事件 |
Private Sub Form_DblClick()
Form1.Picture = LoadPicture("")
Label1.Caption = " 歡迎你學(xué)習(xí)VB!"
End Sub |
選項按鈕1的單擊事件 |
Private Sub Option1_Click()
Label1.Caption = "看清楚 聽明白 記下來"
End Sub |
選項按鈕2的單擊事件 |
Private Sub Option2_Click()
Label1.Caption = "多上機 勤思考 善提問"
End Sub |
4.保存工程
(1)從文件菜單中選擇保存窗體,將窗體保存成vbwelcomeyou . frm
(2)從文件菜單中選擇保存工程,將工程保存成vbwelcomeyou . vbp
5.測試應(yīng)用程序,排除錯誤
根據(jù)設(shè)想的效果調(diào)試程序,直到滿足要求為止。
6.創(chuàng)建可執(zhí)行程序
從文件菜單中選擇 生成vbwelcomeyou . exe ,既可生成一個可執(zhí)行文件。
注意:設(shè)計中遇到問題可以查閱MSDN的幫助文件。 |