VisualBasic應用程式的結構
一個應用程式其實無非是指揮電腦完成任務的指令集。應用程式的結構是組織指令的方法,也就是指令存放的位置和指令的執行順序。
典型的helloworld範例以及諸如此類的簡單應用程式都具有簡單結構。對於只有一行的程式碼來說,組織結構並不十分重要。但應用程式越複雜,對組織或結構的要求就越明顯。試想一下,如果允許應用程式以隨機順序去執行,那將會帶來什麼樣的混亂。除了對應用程式的執行進行控制外,如何在應用程式中輕鬆找到特定指令,結構也起著重要的作用。
由於VisualBasic應用程式是基於物件的,所以應用程式的程式碼結構就是該程式在螢幕上物理表示的模型。根據定義,物件包含資料和程式碼。在螢幕上看到的窗體代表屬性,這些屬性定義了窗體的外觀和內在特性。應用程式中的每個窗體都有一個包含其程式碼的相關的窗體模組(檔案副檔名為.frm)。
每個窗體模組都包含事件過程,即程式碼部分,其中有為回應特定事件而執行的指令。窗體可包含控制項。在窗體模組中,對窗體上的每個控制項都有對應的事件過程集。除了事件過程,窗體模組還可包含通用過程,它對來自任何事件過程的呼叫都作出回應。
可將那些與特定窗體或控制項無關的程式碼放入另一類型的模組-標準模組(檔案副檔名為.BAS)中。一個過程可能用來回應幾個不同物件中的事件,應該將這個過程放在標準模組中,而不應在每個物件的事件過程中重複相同的程式碼。
以類別模組(檔案副檔名為.CLS)建立對象,這些對象可被應用程式內的過程呼叫。標準模組只包含程式碼,而類別模組既包含程式碼又包含數據,可視為沒有物理表示的控制項。
在第四章「工程的管理」中敘述了哪些部件可以添加到應用程式中,本章將說明如何將程式碼寫入構成應用程式的各種部件中。依預設規定,工程包含唯一的窗體模組。可依需求另行添加窗體、類別和標準模組。第九章「用物件程式設計」將討論類別模組。
事件驅動應用程式的工作方式
事件是窗體或控制項辨識的動作。在回應事件時,事件驅動應用程式執行Basic程式碼。 VisualBasic的每一個表單和控制項都有一個預先定義的事件集。如果其中有一個事件發生,而且,在關聯的事件過程中存在程式碼,則VisualBasic呼叫該程式碼。
儘管VisualBasic中的物件會自動辨識預先定義的事件集,但要判定它們是否回應特定事件以及如何回應特定事件則是程式設計的責任了。程式碼部分(即事件過程)與每個事件對應。想讓控制項回應事件時,就把程式碼寫入這個事件的事件過程之中。
物件所辨識的事件類型多種多樣,但多數類型為大多數控制項所共有。例如,大多數物件都能辨識Click事件-如果按一下窗體,則執行窗體的點選事件過程中的程式碼;如果按一下指令按鈕,則執行指令按鈕的Click事件過程中的程式碼。每個情況中的實際代碼幾乎完全不一樣。
這裡是事件驅動應用程式中的典型事件序列:
1.啟動應用程序,裝載和顯示窗體。
2.窗體(或窗體上的控制項)接收事件。事件可由使用者引發(例如鍵盤操作),可由系統引發(例如定時器事件),也可由程式碼間接引發(例如,當程式碼裝載窗體時的Load事件)。
3.如果在對應的事件過程中存在代碼,就執行代碼。
4.應用程式等待下一次事件。
注意許多事件伴隨其它事件發生。例如,在DblClick事件發生時,MouseDown、MouseUp和Click事件也會發生。
->