不過(guò),Delphi仍然允許在事件處理程序中直接處理Windows消息。只是這就不像事件處理機(jī)制那么簡(jiǎn)單,因?yàn)橄⑻幚硇枰绦騿T對(duì)要處理的消息有詳細(xì)了解?梢酝ㄟ^(guò)message這個(gè)關(guān)鍵字處理所有Windows消息。使用Delphi開(kāi)發(fā)應(yīng)用程序的好處是,你既可以用高級(jí)的、易于理解的方式來(lái)編程,也可以在需要時(shí)直接訪問(wèn)低層的信息。
3.2 Delphi的VCL消息系統(tǒng)
所有的Delphi類(lèi)有一個(gè)處理消息的內(nèi)置機(jī)理,稱(chēng)之為消息處理方法或者M(jìn)essage handlers。Message handlers的基本思想就是:類(lèi)獲取一些種類(lèi)的消息,然后再分發(fā)(dis-patch)它們,由響應(yīng)的處理函數(shù)或者過(guò)程進(jìn)行處理(調(diào)用哪一個(gè)處理函數(shù)或過(guò)程取決于所接受的消息)。對(duì)于一個(gè)特殊的消息,如果沒(méi)有一個(gè)指定的方法存在的話,則由一個(gè)缺省的消息處理。
VCL定義了消息分發(fā)系統(tǒng),該系統(tǒng)將所有的windows消息(包括用戶(hù)定義的消息)傳遞給相應(yīng)的對(duì)象,由各對(duì)象的消息分發(fā)系統(tǒng)進(jìn)行處理。VCL對(duì)象用于接收消息的方法叫做MainWndProc()。通過(guò)MainWndProc()可以對(duì)消息進(jìn)行任何特殊的處理。不過(guò),一般情況下很少直接調(diào)用MainWndProc()來(lái)處理消息,除非不想讓消息通過(guò)VCL的消息系統(tǒng)分發(fā)。從MainWndProc()返回后,消息被傳遞給對(duì)象的WndProc()方法,這就是該對(duì)象的窗體過(guò)程,然后進(jìn)入VCL的分發(fā)機(jī)構(gòu)。分發(fā)機(jī)構(gòu)使用Dispatch()方法把消息分發(fā)給一個(gè)消息句柄。消息到達(dá)該消息的處理句柄(Handler)后,經(jīng)過(guò)該句柄的處理,這個(gè)消息處理過(guò)程就結(jié)束了。沒(méi)有必要改變這個(gè)消息分發(fā)機(jī)理,所要做的只是產(chǎn)生一個(gè)消息處理方法或者句柄,即一個(gè)消息處理函數(shù)。
3.3加速原型化
當(dāng)對(duì)Delphi使用了一段時(shí)間后,即使你只是一個(gè)Delphi新手,你也會(huì)發(fā)現(xiàn),用Delphi編寫(xiě)第一個(gè)項(xiàng)目就能馬上獲益:開(kāi)發(fā)周期短、應(yīng)用程序穩(wěn)健。設(shè)計(jì)用戶(hù)界面(UI)是許多windows程序員頭疼的問(wèn)題,而這恰好是Delphi的長(zhǎng)處。用戶(hù)界面的設(shè)計(jì)和程序的布局被稱(chēng)為原型化。在非可視化的開(kāi)發(fā)環(huán)境中,應(yīng)用程序的原型化經(jīng)常比真正實(shí)現(xiàn)程序的時(shí)間還要長(zhǎng)。一個(gè)簡(jiǎn)潔直觀、令人愉悅的用戶(hù)界面是應(yīng)用程序的一大部分。
Delphi能夠用它的自定義控件或自己開(kāi)發(fā)的控件來(lái)快速建立您需要的用戶(hù)界面。當(dāng)你能熟練運(yùn)用窗口、控件和事件響應(yīng)方法以后,將發(fā)現(xiàn)過(guò)去要花很大精力的原型化工作現(xiàn)在大大簡(jiǎn)化了。同時(shí),用Delphi開(kāi)發(fā)的用戶(hù)界面絲毫不比用傳統(tǒng)的開(kāi)發(fā)工具建立的用戶(hù)界面遜色。在Delphi中你在設(shè)計(jì)期看到的往往就是最終的產(chǎn)品。
4.結(jié)束語(yǔ)
綜上所述,大家可發(fā)現(xiàn)Delphi 5本身就是一個(gè)功能十分強(qiáng)大的面向?qū)ο箝_(kāi)發(fā)平臺(tái),它的可視組件庫(kù)VCL(VisualComponent Library)是一個(gè)易學(xué)、易用、高效的可重用的軟件對(duì)象,還包含有豐富的數(shù)據(jù)庫(kù)應(yīng)用,通訊組件。Delphi自身就是使用VCL編寫(xiě)而成的;不僅界面開(kāi)發(fā)方便迅速,而且對(duì)于系統(tǒng)所帶組件和自編組件的運(yùn)用就如同組態(tài)一樣。只要將組件放置在窗體中,用鼠標(biāo)移動(dòng)到你要求的位置,改變某些屬性以滿足你的要求。
![]() | ![]() .. 定價(jià):¥225 優(yōu)惠價(jià):¥213 更多書(shū)籍 |
![]() | ![]() .. 定價(jià):¥133 優(yōu)惠價(jià):¥133.0 更多書(shū)籍 |