VisualBasic編程基礎(chǔ)--應(yīng)用程序的結(jié)構(gòu)

字號(hào):

Visual Basic 應(yīng)用程序的結(jié)構(gòu)
     一個(gè)應(yīng)用程序?qū)嶋H上無(wú)非是指揮計(jì)算機(jī)完成任務(wù)的指令集。應(yīng)用程序的結(jié)構(gòu)是組織指令的方法,也就是指令存放的位置和指令的執(zhí)行順序。
     典型的 "hello world" 例子以及諸如此類(lèi)的簡(jiǎn)單應(yīng)用程序都具有簡(jiǎn)單結(jié)構(gòu)。對(duì)于只有一行的代碼來(lái)說(shuō),組織結(jié)構(gòu)并不十分重要。但應(yīng)用程序越復(fù)雜,對(duì)組織或結(jié)構(gòu)的要求也就越明顯。試想一下,如果允許應(yīng)用程序以隨機(jī)順序去執(zhí)行,那將會(huì)帶來(lái)什么樣的混亂。除了對(duì)應(yīng)用程序的執(zhí)行進(jìn)行控制外,如何在應(yīng)用程序中輕松查找特定指令,結(jié)構(gòu)也起著很重要的作用。
     由于 Visual Basic 應(yīng)用程序是基于對(duì)象的,所以應(yīng)用程序的代碼結(jié)構(gòu)就是該程序在屏幕上物理表示的模型。根據(jù)定義,對(duì)象包含數(shù)據(jù)和代碼。在屏幕上看到的窗體代表屬性,這些屬性定義了窗體的外觀和內(nèi)在特性。應(yīng)用程序中的每個(gè)窗體都有一個(gè)包含其代碼的相關(guān)的窗體模塊(文件擴(kuò)展名為 .frm)。
     每個(gè)窗體模塊都包含事件過(guò)程,即代碼部分,其中有為響應(yīng)特定事件而執(zhí)行的指令。窗體可包含控件。在窗體模塊中,對(duì)窗體上的每個(gè)控件都有一個(gè)對(duì)應(yīng)的事件過(guò)程集。除了事件過(guò)程,窗體模塊還可包含通用過(guò)程,它對(duì)來(lái)自任何事件過(guò)程的調(diào)用都作出響應(yīng)。
     可將那些與特定窗體或控件無(wú)關(guān)的代碼放入另一類(lèi)型的模塊——標(biāo)準(zhǔn)模塊(文件擴(kuò)展名為 .BAS )中。一個(gè)過(guò)程可能用來(lái)響應(yīng)幾個(gè)不同對(duì)象中的事件,應(yīng)該將這個(gè)過(guò)程放在標(biāo)準(zhǔn)模塊中,而不應(yīng)在每一個(gè)對(duì)象的事件過(guò)程中重復(fù)相同的代碼。
     用類(lèi)模塊(文件擴(kuò)展名為 .CLS )創(chuàng)建對(duì)象,這些對(duì)象可被應(yīng)用程序內(nèi)的過(guò)程調(diào)用。標(biāo)準(zhǔn)模塊只包含代碼,而類(lèi)模塊既包含代碼又包含數(shù)據(jù),可視為沒(méi)有物理表示的控件。
     在第四章“工程的管理”中敘述了哪些部件可以添加到應(yīng)用程序中,本章將說(shuō)明如何將代碼寫(xiě)到構(gòu)成應(yīng)用程序的各種部件中。按照缺省規(guī)定,工程包含的窗體模塊??筛鶕?jù)需要另行添加窗體、類(lèi)和標(biāo)準(zhǔn)模塊。第九章“用對(duì)象編程”將討論類(lèi)模塊。
     事件驅(qū)動(dòng)應(yīng)用程序的工作方式
     事件是窗體或控件識(shí)別的動(dòng)作。在響應(yīng)事件時(shí),事件驅(qū)動(dòng)應(yīng)用程序執(zhí)行 Basic代碼。Visual Basic 的每一個(gè)窗體和控件都有一個(gè)預(yù)定義的事件集。如果其中有一個(gè)事件發(fā)生,而且,在關(guān)聯(lián)的事件過(guò)程中存在代碼,則 Visual Basic 調(diào)用該代碼。
     盡管 Visual Basic 中的對(duì)象自動(dòng)識(shí)別預(yù)定義的事件集,但要判定它們是否響應(yīng)具體事件以及如何響應(yīng)具體事件則是編程的責(zé)任了。代碼部分(即事件過(guò)程)與每個(gè)事件對(duì)應(yīng)。 想讓控件響應(yīng)事件時(shí),就把代碼寫(xiě)入這個(gè)事件的事件過(guò)程之中。
     對(duì)象所識(shí)別的事件類(lèi)型多種多樣,但多數(shù)類(lèi)型為大多數(shù)控件所共有。例如,大多數(shù)對(duì)象都能識(shí)別 Click 事件——如果單擊窗體,則執(zhí)行窗體的單擊事件過(guò)程中的代碼;如果單擊命令按鈕,則執(zhí)行命令按鈕的Click 事件過(guò)程中的代碼。每個(gè)情況中的實(shí)際代碼幾乎完全不一樣。
     這里是事件驅(qū)動(dòng)應(yīng)用程序中的典型事件序列:
     1. 啟動(dòng)應(yīng)用程序,裝載和顯示窗體。
     2. 窗體(或窗體上的控件)接收事件。事件可由用戶(hù)引發(fā)(例如鍵盤(pán)操作),可由系統(tǒng)引發(fā)(例如定時(shí)器事件),也可由代碼間接引發(fā)(例如,當(dāng)代碼裝載窗體時(shí)的 Load 事件)。
     3. 如果在相應(yīng)的事件過(guò)程中存在代碼,就執(zhí)行代碼。
     4. 應(yīng)用程序等待下一次事件。
     注意 許多事件伴隨其它事件發(fā)生。例如,在 DblClick 事件發(fā)生時(shí),MouseDown、MouseUp 和 Click 事件也會(huì)發(fā)生。