開始編碼之前
在 Visual Basic 中創(chuàng)建應用程序的最重要的(又往往為人忽視的)部分是設計階段。需要為應用程序設計一個用戶界面,這是顯然的;但需要設計代碼的結構就不那么顯然了。構造應用程序的方法不同,可造成應用程序的性能及代碼的可維護性、可使用性不同?! isual Basic 應用程序的代碼是用分層方式組織的。典型應用程序包括若干模塊:應用程序中每個窗體的窗體模塊、共享代碼的可選標準模塊以及可選的類模塊。 每個模塊包含若干含有代碼的過程:event過程、Sub子過程或Function過程,以及Property過程?! ∨卸ㄊ裁催^程屬于什么模塊,這與創(chuàng)建的應用程序的類型有一定關系。因為 Visual Basic 是基于對象的,所以,利用應用程序代表的對象來考慮應用程序將是有益的。在這一章,示例應用程序 Vcr.vbp 的設計建立在盒式錄像機和電視機組成的對象基礎之上。VCR 應用程序包含兩個窗體模塊、一個標準模塊和兩個類模塊。可用“對象瀏覽器”來檢查工程的結構(圖5.2)。
VCR 應用程序的主窗體 (frmVCR) 是 VCR與電視屏幕組合的可視圖像(圖 5.3)。它包括幾個對象,這些對象以現(xiàn)實世界中的圖景為模型。一組命令按鈕(cmdPlay、cmdRecord 等等)模仿的是操作 VCR 的按鈕。軟件VCR 還包括時鐘 (lblTime)、通道指示器 (lblChannel)、功能指示器(shpPlay、shpRecord 等等)以及顯像管 (picTV)。Vcr.frm 窗體模塊包括所有這些對象的事件過程。
在很多情況中都存在著多個對象共享的重復過程。例如,“按下”“放像”、“倒帶”或“錄像”按鈕時就要求“暫停”和“停止”按鈕有效。創(chuàng)建一個共享的子過程,所有按鈕都可調用它,而不要在每個按鈕的 Click 事件過程中重復這段代碼。如果將來要修改這些子程序,則只在一個地方修改就可進行全部修改。標準模塊 Vcr.bas 包含各種共享過程。
VCR 的某些部分是不可視的,比如磁帶的輸送機置或錄制電視節(jié)目的邏輯便是如此。同樣,軟件 VCR 的一些功能沒有可視圖像。這些部分和功能是作為兩個類模塊 Recorder.cls 和 Tape.cls 實現(xiàn)的。clsRecorder 模塊包含啟動“錄像”進程的代碼;而 clsTape 模塊則包含控制“磁帶”方向和速度的代碼。這些模塊中所定義的類與窗體中的任何對象都沒有直接關系。因為它們是獨立的代碼模塊,所以不作任何修改就可輕輕松松重建一個錄音程序。
除了設計代碼結構之外,建立命名約定也是很重要的。按照缺省規(guī)定,VisualBasic 將工程的第一個窗體命名為 Form1,第二個窗體為 Form2,依此類推。如果應用程序中有幾個窗體,則賦予它們有含義的名字,以免在編寫或編輯代碼時出現(xiàn)混淆情況。在附錄 B“Visual Basic 編碼約定”中列舉了一些 Visual Basic 建議的命名約定。
在進一步了解對象和學習編寫代碼時,可參考 VCR 示例應用程序,查找有關各種編碼技巧的例子。
代碼編寫機制
在著手編寫代碼之前,了解 Visual Basic 編寫代碼的機制是很重要的。和任何編程語言一樣,Visual Basic 有自身的組織、編輯和格式化代碼規(guī)則。
代碼模塊
Visual Basic 的代碼存儲在模塊中。模塊有三種類型:窗體、標準和類。簡單的應用程序可以只有一個窗體,應用程序的所有代碼都駐留在窗體模塊中。而當應用程序龐大復雜時,就要另加窗體。最終可能會發(fā)現(xiàn)在幾個窗體中都有要執(zhí)行的公共代碼。因為不希望在兩個窗體中重復代碼,所以要創(chuàng)建一個獨立模塊,它包含實現(xiàn)公共代碼的過程。獨立模塊應為標準模塊。此后可以建立一個包含共享過程的模塊庫。
每個標準模塊、類模塊和窗體模塊都可包含:
聲明??蓪⒊?shù)、類型、變量和動態(tài)鏈接庫 (DLL) 過程的聲明放在窗體、類或標準模塊的模塊級。
過程。Sub、Function 或者 Property 過程包含可以作為單元來執(zhí)行的代碼片段。本章后面的“過程概述”一節(jié)中將討論這些內容。
窗體模塊
窗體模塊(文件擴展名為 .FRM )是大多數(shù) Visual Basic 應用程序的基礎。窗體模塊可以包含處理事件的過程、通用過程以及變量、常數(shù)、類型和外部過程的窗體級聲明。如果要在文本編輯器中觀察窗體模塊,則還會看到窗體及其控件的描述,包括它們的屬性設置值。寫入窗體模塊的代碼是該窗體所屬的具體應用程序專用的;它也可以引用該應用程序內的其它窗體或對象。
標準模塊
標準模塊(文件擴展名為 .BAS)是應用程序內其它模塊訪問的過程和聲明的容器。它們可以包含變量、常數(shù)、類型、外部過程和全局過程的全局(在整個應用程序范圍內有效的)聲明或模塊級聲明。寫入標準模塊的代碼不必綁在特定的應用程序上;如果能夠注意不用名稱引用窗體和控件,則在許多不同的應用程序中可以重用標準模塊。
類模塊
在 Visual Basic 中類模塊(文件擴展名為 .CLS)是面向對象編程的基礎。可在類模塊中編寫代碼建立新對象。這些新對象可以包含自定義的屬性和方法。實際上,窗體正是這樣一種類模塊,在其上可安放控件,可顯示窗體窗口。
在 Visual Basic 中創(chuàng)建應用程序的最重要的(又往往為人忽視的)部分是設計階段。需要為應用程序設計一個用戶界面,這是顯然的;但需要設計代碼的結構就不那么顯然了。構造應用程序的方法不同,可造成應用程序的性能及代碼的可維護性、可使用性不同?! isual Basic 應用程序的代碼是用分層方式組織的。典型應用程序包括若干模塊:應用程序中每個窗體的窗體模塊、共享代碼的可選標準模塊以及可選的類模塊。 每個模塊包含若干含有代碼的過程:event過程、Sub子過程或Function過程,以及Property過程?! ∨卸ㄊ裁催^程屬于什么模塊,這與創(chuàng)建的應用程序的類型有一定關系。因為 Visual Basic 是基于對象的,所以,利用應用程序代表的對象來考慮應用程序將是有益的。在這一章,示例應用程序 Vcr.vbp 的設計建立在盒式錄像機和電視機組成的對象基礎之上。VCR 應用程序包含兩個窗體模塊、一個標準模塊和兩個類模塊。可用“對象瀏覽器”來檢查工程的結構(圖5.2)。
VCR 應用程序的主窗體 (frmVCR) 是 VCR與電視屏幕組合的可視圖像(圖 5.3)。它包括幾個對象,這些對象以現(xiàn)實世界中的圖景為模型。一組命令按鈕(cmdPlay、cmdRecord 等等)模仿的是操作 VCR 的按鈕。軟件VCR 還包括時鐘 (lblTime)、通道指示器 (lblChannel)、功能指示器(shpPlay、shpRecord 等等)以及顯像管 (picTV)。Vcr.frm 窗體模塊包括所有這些對象的事件過程。
在很多情況中都存在著多個對象共享的重復過程。例如,“按下”“放像”、“倒帶”或“錄像”按鈕時就要求“暫停”和“停止”按鈕有效。創(chuàng)建一個共享的子過程,所有按鈕都可調用它,而不要在每個按鈕的 Click 事件過程中重復這段代碼。如果將來要修改這些子程序,則只在一個地方修改就可進行全部修改。標準模塊 Vcr.bas 包含各種共享過程。
VCR 的某些部分是不可視的,比如磁帶的輸送機置或錄制電視節(jié)目的邏輯便是如此。同樣,軟件 VCR 的一些功能沒有可視圖像。這些部分和功能是作為兩個類模塊 Recorder.cls 和 Tape.cls 實現(xiàn)的。clsRecorder 模塊包含啟動“錄像”進程的代碼;而 clsTape 模塊則包含控制“磁帶”方向和速度的代碼。這些模塊中所定義的類與窗體中的任何對象都沒有直接關系。因為它們是獨立的代碼模塊,所以不作任何修改就可輕輕松松重建一個錄音程序。
除了設計代碼結構之外,建立命名約定也是很重要的。按照缺省規(guī)定,VisualBasic 將工程的第一個窗體命名為 Form1,第二個窗體為 Form2,依此類推。如果應用程序中有幾個窗體,則賦予它們有含義的名字,以免在編寫或編輯代碼時出現(xiàn)混淆情況。在附錄 B“Visual Basic 編碼約定”中列舉了一些 Visual Basic 建議的命名約定。
在進一步了解對象和學習編寫代碼時,可參考 VCR 示例應用程序,查找有關各種編碼技巧的例子。
代碼編寫機制
在著手編寫代碼之前,了解 Visual Basic 編寫代碼的機制是很重要的。和任何編程語言一樣,Visual Basic 有自身的組織、編輯和格式化代碼規(guī)則。
代碼模塊
Visual Basic 的代碼存儲在模塊中。模塊有三種類型:窗體、標準和類。簡單的應用程序可以只有一個窗體,應用程序的所有代碼都駐留在窗體模塊中。而當應用程序龐大復雜時,就要另加窗體。最終可能會發(fā)現(xiàn)在幾個窗體中都有要執(zhí)行的公共代碼。因為不希望在兩個窗體中重復代碼,所以要創(chuàng)建一個獨立模塊,它包含實現(xiàn)公共代碼的過程。獨立模塊應為標準模塊。此后可以建立一個包含共享過程的模塊庫。
每個標準模塊、類模塊和窗體模塊都可包含:
聲明??蓪⒊?shù)、類型、變量和動態(tài)鏈接庫 (DLL) 過程的聲明放在窗體、類或標準模塊的模塊級。
過程。Sub、Function 或者 Property 過程包含可以作為單元來執(zhí)行的代碼片段。本章后面的“過程概述”一節(jié)中將討論這些內容。
窗體模塊
窗體模塊(文件擴展名為 .FRM )是大多數(shù) Visual Basic 應用程序的基礎。窗體模塊可以包含處理事件的過程、通用過程以及變量、常數(shù)、類型和外部過程的窗體級聲明。如果要在文本編輯器中觀察窗體模塊,則還會看到窗體及其控件的描述,包括它們的屬性設置值。寫入窗體模塊的代碼是該窗體所屬的具體應用程序專用的;它也可以引用該應用程序內的其它窗體或對象。
標準模塊
標準模塊(文件擴展名為 .BAS)是應用程序內其它模塊訪問的過程和聲明的容器。它們可以包含變量、常數(shù)、類型、外部過程和全局過程的全局(在整個應用程序范圍內有效的)聲明或模塊級聲明。寫入標準模塊的代碼不必綁在特定的應用程序上;如果能夠注意不用名稱引用窗體和控件,則在許多不同的應用程序中可以重用標準模塊。
類模塊
在 Visual Basic 中類模塊(文件擴展名為 .CLS)是面向對象編程的基礎。可在類模塊中編寫代碼建立新對象。這些新對象可以包含自定義的屬性和方法。實際上,窗體正是這樣一種類模塊,在其上可安放控件,可顯示窗體窗口。

