Delphi程序開(kāi)發(fā)特點(diǎn)分析_彭建胥_第1頁(yè)
Delphi程序開(kāi)發(fā)特點(diǎn)分析_彭建胥_第2頁(yè)
Delphi程序開(kāi)發(fā)特點(diǎn)分析_彭建胥_第3頁(yè)
Delphi程序開(kāi)發(fā)特點(diǎn)分析_彭建胥_第4頁(yè)
Delphi程序開(kāi)發(fā)特點(diǎn)分析_彭建胥_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、Delphi 程序開(kāi)發(fā)特點(diǎn)分析彭建胥(郴州職業(yè)技術(shù)學(xué)院,湖南郴州423000摘要本文主要是對(duì)Delphi 語(yǔ)言的特點(diǎn)進(jìn)行分析,包括對(duì)可視化集成環(huán)境、編譯器的速度以及事件驅(qū)動(dòng)機(jī)制等進(jìn)行了探討。關(guān)鍵詞Delphi ;可視化;數(shù)據(jù)庫(kù)結(jié)構(gòu)作者簡(jiǎn)介:彭建胥,女,湖南郴州人,大學(xué)本科,講師。1.引言我們經(jīng)常會(huì)問(wèn)這樣的問(wèn)題:“到底什么使得Delphi 如此優(yōu)秀?”和“為什么和別的編程工具相比,我更愿意選擇Delphi?”等等。簡(jiǎn)而言之就是:高效性。決定一個(gè)軟件開(kāi)發(fā)工具效率的因素歸結(jié)為以下五點(diǎn):可視化開(kāi)發(fā)環(huán)境的性能。編譯器的速度和已編譯代碼的效率。編程語(yǔ)言的功能及其復(fù)雜性。數(shù)據(jù)庫(kù)結(jié)構(gòu)的靈活性和可擴(kuò)展性??蚣軐?duì)

2、設(shè)計(jì)和使用模式的擴(kuò)充。2.D el phi 的特點(diǎn)2.1可視化集成開(kāi)發(fā)環(huán)境可視化開(kāi)發(fā)環(huán)境通常分為三個(gè)組成部分:編輯器、調(diào)試器和窗體設(shè)計(jì)器。和大多數(shù)現(xiàn)代RAD(快速應(yīng)用開(kāi)發(fā)工具一樣,這三部分是協(xié)同工作的。當(dāng)你在窗體設(shè)計(jì)器中工作時(shí),Delphi 在后臺(tái)自動(dòng)為你正在窗體中操縱的控件生成代碼。你還可以自己在編輯器中加入代碼來(lái)定義應(yīng)用程序的行為,同時(shí)還可以在同一個(gè)編輯器中通過(guò)設(shè)置斷點(diǎn)和監(jiān)控點(diǎn)等來(lái)調(diào)試程序。在版本5里,Delphi 的調(diào)試器具備了許多先進(jìn)的功能,如遠(yuǎn)程調(diào)試、過(guò)程關(guān)聯(lián)、DL 斷口包調(diào)試、自動(dòng)本地監(jiān)控以及CPU 窗口等。Delphi 還支持在調(diào)試時(shí)隨意放置和??看翱诓堰@一狀態(tài)保存為命令的桌面

3、設(shè)置。由此,Delphi 的IDE 實(shí)現(xiàn)了對(duì)調(diào)試功能的良好支持。對(duì)RAD 工具(如Delphi、Visual Basic、C+Builder 和PowerBuilder 等來(lái)說(shuō),窗體設(shè)計(jì)器是一項(xiàng)獨(dú)特的功能。一些更為經(jīng)典的開(kāi)發(fā)環(huán)境,如VC+和BC+,都提供了對(duì)話編輯器,但卻沒(méi)有將窗體設(shè)計(jì)器集成到開(kāi)發(fā)流程中,沒(méi)有窗體設(shè)計(jì)器將會(huì)降低開(kāi)發(fā)工具的整體效率。幾年來(lái),Delphi 與Visual Basic 在完善窗體設(shè)計(jì)器的功能方面展開(kāi)了激烈的競(jìng)爭(zhēng)。Delphi 的窗體設(shè)計(jì)器的與眾不同之處在于,Delphi 是建立在一個(gè)真正面向?qū)ο蟮目蚣芙Y(jié)構(gòu)基礎(chǔ)之上的。這樣,你對(duì)基類(lèi)所做的改變都將會(huì)傳遞給所有的派生類(lèi)。這

4、里涉及的一項(xiàng)關(guān)鍵技術(shù)就是VFI (visual form inheritance,即可視化窗體繼承。VFI 技術(shù)使你能夠動(dòng)態(tài)地繼承當(dāng)前項(xiàng)目或?qū)ο髱?kù)中的任何其他窗體。一旦基窗體發(fā)生改變,派生的窗體會(huì)立即予以更新。2.2編譯器的速度和已編譯代碼的效率Pascal 編譯器最著名的特點(diǎn)就是速度快,而Delphi 正是建立在這種編譯器的基礎(chǔ)之上的。事實(shí)上,它可能是針對(duì)windows 的最快的高級(jí)語(yǔ)言本地代碼編譯器。以往速度很慢的C+編譯器在近年來(lái)取得了很大的進(jìn)步,增加了鏈接和各種緩存策略,尤其是在VISua1C+和C+Builder 中。但即便如此,C+的編譯器還是比Delphi 的慢了幾倍。Delph

5、i 和C+Builder 共享同一種編譯器后端,是一個(gè)公司的產(chǎn)品,因此生成的代碼等效于由一個(gè)優(yōu)秀的C+編譯器生成的代碼。2.3編程語(yǔ)言的功能及其復(fù)雜性C+是非強(qiáng)類(lèi)型語(yǔ)言,有些錯(cuò)誤編譯器無(wú)法發(fā)現(xiàn)。Object Pascal 和Java 很相似,它們很好地把握住了復(fù)雜性和功能性的平衡。它們都采取了這樣一種途徑,即限制其可用功能以加強(qiáng)開(kāi)發(fā)者的邏輯設(shè)計(jì)。例如,兩者都避免了完全面向?qū)ο蟮珔s容易被濫用的多重繼承的觀念,而是實(shí)現(xiàn)了一個(gè)執(zhí)行多重接口功能的類(lèi)。兩者都不支持美觀卻危險(xiǎn)的操作符加載。兩者都有一些強(qiáng)大的功能,諸如異常處理、運(yùn)行期類(lèi)型信息(RTT 工和生存期內(nèi)存自管理字符串。特別是運(yùn)行期類(lèi)型信息(RTT

6、I,對(duì)我們?cè)O(shè)計(jì)仿真培訓(xùn)系統(tǒng)中的操作站與現(xiàn)場(chǎng)站很重要,用它我們可根據(jù)組態(tài)數(shù)據(jù)庫(kù)的數(shù)據(jù)在運(yùn)行期自動(dòng)創(chuàng)建組件和自動(dòng)識(shí)別組件而賦給相應(yīng)的數(shù)據(jù)。同時(shí),Delphi 使用編程語(yǔ)言是Object Pascal,是面對(duì)對(duì)象、強(qiáng)類(lèi)型語(yǔ)言。有利編制穩(wěn)健的應(yīng)用程序,減少調(diào)試、檢錯(cuò)時(shí)間以提高開(kāi)發(fā)效率;有利描述真實(shí)世界的事物和系統(tǒng),如控制系統(tǒng)、工藝數(shù)學(xué)模型。2.4數(shù)據(jù)庫(kù)結(jié)構(gòu)的靈活性和可擴(kuò)展性由于Borland 缺少一種數(shù)據(jù)庫(kù)計(jì)劃,因此Delphi 保留了我們認(rèn)為是所有工具中最靈活的數(shù)據(jù)庫(kù)結(jié)構(gòu)。對(duì)大多數(shù)基于本地、客戶(hù)服務(wù)器和ODBC 數(shù)據(jù)庫(kù)平臺(tái)的應(yīng)用程序來(lái)說(shuō),BDE 的功能都非常強(qiáng)大。如果你對(duì)此不滿意,可以避開(kāi)使用BDE

7、 以支持新的本地ADO 組件。如果你沒(méi)有裝ADO,可以自己創(chuàng)建數(shù)據(jù)訪問(wèn)類(lèi)或者購(gòu)買(mǎi)第三方數(shù)據(jù)訪問(wèn)解決方案。此外,MIDAS 使對(duì)數(shù)據(jù)源的多層訪問(wèn)更易于實(shí)現(xiàn)。而Microsoft 的工具(ODBC、OLEDB 或者其他從邏輯上來(lái)說(shuō)趨向于支持Mi-crosoft 自己的數(shù)據(jù)庫(kù)和數(shù)據(jù)訪問(wèn)解決方案。2.5框架對(duì)設(shè)計(jì)和使用模式的擴(kuò)充這是一項(xiàng)經(jīng)常被其他軟件設(shè)計(jì)工具忽略了的重要功能。系統(tǒng)開(kāi)發(fā)49VCL是Delphi最重要的組成部分。在設(shè)計(jì)時(shí)操縱組件、創(chuàng)建組件、使用面向?qū)ο蠹夹g(shù)繼承其他組件的行為,這些能力都是決定Delphi效率的關(guān)鍵因素。在許多場(chǎng)合,編寫(xiě)VCL組件都采用固定的00設(shè)計(jì)方法。相比之下,其它基于組

8、件的框架經(jīng)常過(guò)于死板或過(guò)于復(fù)雜。比如ActiveX控件具有和VCL 控件相同的設(shè)計(jì)期性能,但卻不能被繼承以創(chuàng)建一個(gè)具有其他不同行為的新類(lèi)。傳統(tǒng)的類(lèi)框架,如OWL和MFC,需要你有大量的內(nèi)部結(jié)構(gòu)知識(shí),而且如果沒(méi)有RAD工具的設(shè)計(jì)期支持,其功能將會(huì)受到抑制。3.D el phi的事件驅(qū)動(dòng)機(jī)制3.1無(wú)約定編程與傳統(tǒng)的Windows消息機(jī)制相比,Delphi的事件處理機(jī)制的最大優(yōu)勢(shì)在于所有的事件都是無(wú)約定的。對(duì)程序員而言,無(wú)約定就是指可以在事件處理程序中什么都不干。而在傳統(tǒng)的Windows消息機(jī)制中,就不得不調(diào)用基類(lèi)的消息處理程序,還要把信息回傳給Windows。當(dāng)然,Delphi的事件處理機(jī)制的無(wú)約

9、定的編程方式可能無(wú)法對(duì)消息進(jìn)行直接的靈活有效的處理,你要受制于誰(shuí)引發(fā)了這一事件以及應(yīng)用程序?qū)@一事件要做出什么響應(yīng)等。例如,可以在OnKeyPress 處理程序中修改和取消擊鍵,但onResize事件處理程序卻只能提供這一事件已發(fā)生的通知而無(wú)法進(jìn)一步防止或控制尺寸的改變。不過(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

10、.2Delphi的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ò)MainWnd

11、Proc(可以對(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è)Del-phi新手,你也會(huì)發(fā)

12、現(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ì)期看

13、到的往往就是最終的產(chǎn)品。4.結(jié)束語(yǔ)綜上所述,大家可發(fā)現(xiàn)Delphi5本身就是一個(gè)功能十分強(qiáng)大的面向?qū)ο箝_(kāi)發(fā)平臺(tái),它的可視組件庫(kù)VCL(Visual Component 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)到你要求的位置,改變某些屬性以滿足你的要求。參考文獻(xiàn):1黃文蘭.Delphi語(yǔ)言開(kāi)發(fā)教務(wù)管理系統(tǒng)J.電腦知識(shí)與技術(shù),2006,(20.2向繼文.Delphi與匯編語(yǔ)言的混合編程J.吉林大學(xué)學(xué)報(bào)(自然科學(xué)版,2006,(3.3林瑜華.如何在DELPHI中使用SQL語(yǔ)言J.福建電腦, 2005,(10.4嚴(yán)麗平.基于Delphi的C語(yǔ)言詞法分析器的實(shí)現(xiàn)J.科技廣場(chǎng),2004,(8.Features of Delphi DevelopersPeng Jianxu(Chenzhou Vocational and Technical College,Chenzhou423000,Hunan【Abstrac

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論