转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> Delphi程序 >> 正文
李维:Windows 原生開發工具的瑰寶 – Delphi 6         ★★★★

李维:Windows 原生開發工具的瑰寶 – Delphi 6

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1471 更新时间:2009/4/23 18:41:50

 

Windows 原生開發工具的瑰寶 – Delphi 6



在睽違了將近2年之後,Borland的年度巨獻Delphi 6終於將在世人的面前揭開神秘的
面紗。Delphi 6不但對於Borland來說是一個重要的產品,事實上對於現在的視窗平台
也是一個意義重大的產品。因為當Microsoft全力發展.NET虛擬環境,而Borland本身
也往Linux平台上開發RAD工具Kylix的時候,由Borland視窗開發小組所研發的原生視
窗開發工具正好填補了仍佔多數視窗程式師的需要。

由於資訊技術不斷的快速進步,許多視窗程式師也不斷的需要在應用系統中加入最
新的技術,或是使用這些新的技術開發下一代的應用系統。例如XML/XSL的盛行,
讓程式師對於如何處理和發揮XML的技術有強烈的需求,例如SOAP的逐漸成為遠端
和分散式計算的標準,因此程式師也需要使用SOAP來開發或是整合應用系統。更別
說由SOAP和WSDL/WSML,UDDI等技術所衍生出的最新Web應用系統標準Web
Service等。對於視窗平台上的程式師而言,即使是使用現在的開發工具,例如Delphi
4/5或是VB等也仍然可以利用這些新的資訊技術開發應用程式,但是如此做不但有一
定的難度,而且可能曠廢時日。

Delphi 6剛好可以幫助企業和程式師解決這些資訊技術上的困擾,Delphi 6不但在傳統
的開發能力方面持續的進步,讓程式師能夠享有更具生產力的開發環境,對於最新
的資訊技術,例如XML/XSL,SOAP,Web Service等都有非常良好的支援,讓程式師
能夠快速的使用這些新的技術。此外Delphi 6在核心執行時期函式館以及編譯器方面
也有了幅度不小的改善,不但讓程式師可以開發功能更強的視窗應用程式,也可以
更平順的移植到Linux平台,再搭配跨2平台的新視覺化元件Framework CLX,即使是
視窗的程式師也可以快速的開發Linux平台上的應用系統。
現在就讓我們趕快仔細的看看Delphi 6在各方面提供了什麼功能,到底值不值得視窗
的程式師使用她來開發視窗的應用程式吧。

強化的Delphi整合發展環境


就如同以往Delphi的每一個新版本慣例一樣,Delphi 6也持續的改善整合發展環境,
幫助程式師更有生產力。Delphi 6在整合發展環境中加入了數項致命的吸引力,讓程
式師對這些新的功能愛不釋手。下面就簡單的介紹這些新的整合發展環境功能。

Code Complete


Code Complete的功能在Delphi 5就已經加入了,這項功能非常受到程式師的歡迎,因
為Code Complete可以大幅的減少程式師需要鍵入的程式碼,並且減少打錯的機率。
Delphi 6的Code Complete功能又持續的加碼改善,新的Code Complete視窗不但可以由
程式師自行調整大小,以及以不同的顏色代表不同的物件,例如變數,方法和特性
等。


Delphi 6的Code Complete視窗加入了色彩分析,以及物件分門別類的能力


此外新的Code Complete視窗也會更聰明的過濾器物件能夠使用的PME,避免了以往
Delphi 5的Code Complete視窗無法顯示一些PME的困窘情形。最後如果程式師在新的
Code Complete視窗中選擇了呼叫方法之後,Code Complete現在也會自動的在方法名
稱之後自動加入();字元,把游標自動停在圓括弧之中,並且自動顯示這個方法需要
的所有參數,的確比以前更聰明和方便了。

Object TreeView


另外一個新的功能就是Delphi 6的Object TreeView視窗,這個新的視窗可以除了可以
顯示表單中所有的物件之外,也以階層的方式表達元件之間擁有者的關係。而當程
式師在Object TreeView視窗中點選了一個元件之後,這個元件也會立刻的出現在物件
檢視器之中讓程式師可以改變這個物件的特性值和事件處理函式。
本來當我一開始使用Delphi 6時,總是喜歡把Object TreeView視窗關閉,總覺得她佔
據了整合發展環境的空間,又沒有什麼作用。但是稍後才發現她的好處,特別是當
表單複雜,擁有大量的元件時,Object TreeView視窗可以讓你立刻的找到這個元件,
並且知道和她相關的元件,非常的方便。這比以往我使用物件檢視器辛辛苦苦的搜
尋元件好多了。


Delphi 6的Object TreeView視窗可以讓程式師快速找到表單中的任何物件

此外Delphi 6的編輯器也強化了Class Complete的功能,讓程式師擁有更大的彈性定義
類別程式碼。並且加入了Interface Complete的功能,讓程式師在撰寫介面程式碼時也
能夠享有Code Complete的功能。

可客製化的View視窗


Delphi 6最強勁的整合發展環境功能應該要算是新的可客製化的View視窗了,在
Delphi 6中,編輯器不但可以讓程式師觀看和編輯Object Pascal的程式碼,如果程式師
現在編輯的是Web應用程式,那麼也可以直接在編輯器中檢視HTML程式碼,稿本語
言程式碼,預覽Web應用程式執行的結果畫面,以及Web應用程式產生的真正HTML
程式碼。請仔細觀看本文第一個圖形的下方,熟悉Delphi的程式師應該會注意到編輯
器的下方多了數個頁次,例如HTML Result,Preview等,這些頁次就是可客製化的
View視窗。

除了剛才介紹的可客製化的View視窗之外,Delphi 6的編輯器也可以讓程式師直接檢
視XML和XSL的樹狀架構,更允許程式師自行開發客製化的View視窗整合到Delphi的
編輯器之中,可以說功能非常的強大,稍後在介紹Delphi 6的Web功能時,Delphi的程
式師便可以知道她的威力。

新一代資料存取引擎-dbExpress


Borland為了讓視窗平台的Delphi以及Linux平台上的Kylix有著共通的資料存取引擎,
因此決定開發新一代的資料存取引擎,那就是dbExpress。DbExpress是一組存取各種
不同關連資料庫的原生驅動程式,以及以組統一的元件。由於原生驅動程式和元件
都是以跨平台的考量開發的,因此Delphi和Kylix都可以使用這組驅動程式和元件。程
式師藉由統一的元件來存取不同的資料庫,以方便開發資料庫應用系統,下圖就是
Delphi 6的dbExpress元件組。


Delphi 6的dbExpress元件組


在4月的RUN!PC的Kylix介紹一文中我已經介紹過dbExpress,因此在本文只簡單的介
紹dbExpress的功能。

基本上dbExpress是使用所謂的Firehose引擎來存取資料,並且把異動資料的工作交給
MIDAS(MIDAS在Delphi 6中將改名為DataSnap)下圖便是DBExpress結合Firehose和
MIDAS的功能示意圖。



dbExpress的核心是數個簡潔的介面(Interface)組成的,這些介面定義了如何跟特定的
資料庫廠商介面溝通的ISQLDriver,如何連結資料庫的ISQLConnection,如何對資料
來源下達命令的ISQLCommand,如何控制Cursor的ISQLCursor,以及存取資料庫
MetaData的ISQLMetaData。這些介面定義的目標就是簡易,有效率,它們和Java的
JDBC有非常類似的觀念,但是Borland又提供了MIDAS來巧妙的結合這些介面,因此
提供了比JDBC高上數倍的生產力。

雖然dbExpress在Kylix中是1.0的版本,而在Delphi 6中則是1.x的版本,意謂Borland又
修正和改善了Kylix中的dbExpress。但是dbExpress的執行速度卻已經和開發多年的
BDE/IDAPI有著幾乎一樣的表現,絲毫不遜色,甚至有許多項目還比BDE/IDAPI表現
得更好。例如下圖是dbExpress和BDE/IDAPI在連結InterBase的表現,從下面的資料中
可以看出dbExpress還略勝一籌。

開啟資料庫 dbExpress BDE
時間 1.467 1.831


此外我還寫了一些測試程式,讓dbExpress和BDE/IDAPI隨機產生資料,並且異動到資
料庫之中。下面便是執行測試的結果,從這些數據中我們可以看出dbExpress和
BDE/IDAPI幾乎是不分上下的。

新增資料筆數 dbExpress BDE
10 0.052 0.036
100 0.334 0.342
1000 3.186 3.421
2000 6.514 6.732
10000 37.992 36.109


不過dbExpress更吸引人的地方是如果程式師知道如何微調它的話,那麼它幾乎可以
使用閃電般的速度處理資料。例如下面的資料便是經過我調整之後的dbExpress和
BDE/IDAPI比較處理資料的結果。從這些數據中我們可以看到調整之後的dbExpress幾
乎以快3倍的速度在處理資料,把BDE/IDAPI遠遠的拋在後面。看到這樣的結果,真
不禁今人佩服Borland開發dbExpress的功力。

新增資料筆數 dbExpress BDE 改良的dbExpress
10 0.052 0.036 0.047
100 0.334 0.342 0.206
1000 3.186 3.421 1.19
2000 6.514 6.732 2.686
10000 37.992 36.109 17.472


dbExpress除了在異動資料的速度方面超過BDE/IDAPI,在查詢資料方面也是大幅領先
BDE/IDAPI。例如下表是分別使用dbExpress和BDE/查詢大量隨機資料的結果,
dbExpress在這一方面也以3倍的時間勝出BDE。從各種數據顯示,dbExpress在各種處
理資料的工作方面幾乎都遙遙領先已經發展數年之久的BDE/IDAPI。

查詢大量資料
dbExpress 1.215 BDE 4.826 最佳化後的 BDE 3.171


除了dbExpress之外,Delphi 6仍然內附了最新的BDE/IDAPI,它包含了臭蟲修正以及
新的DB2驅動程式。此外也仍然包含ADOExpress,ADOExpress除了修正了許多臭蟲
之外,也加入了一些新的功能,最重要的是ADOExpress終於改正了在開發
Master/Detail型態的應用程式會碰到的問題,這應該可以讓許多程式師感到滿意,不
過Delphi 6的ADOExpress在Beta 4之中仍然是以MDAC 2.1版為基礎,並沒有昇級到最
新的2.7版,不知道Borland是否會在最後階段完成昇級的工作。

更好的COM+支援功能


Delphi 6在支援COM/MTS/COM+物件方面又再次的進行了加強的工作,除了在Type
Library編輯器增加功能之外,對於實作COM物件方面也加入了最新支援Neutral執行
緒模型的實作。例如下圖顯示了當我開發COM物件時,可以選擇各種執行緒模型型
態的COM物件。


Delphi 6允許程式師建立各種執行緒模型的COM物件,包括了最新的Neutral型態
的COM物件


此外當程式師需要實作特定的COM介面方法時,再也不需要像以往一樣辛苦的宣告
並且實作COM介面。Delphi 6的COM精靈可以讓程式師自由選擇要實作的COM介面,
然後幫助程式師自動產生所有的介面宣告程式碼。例如下圖是我要實作IActiveMovie
介面時,可以啟動Delphi 6的COM精靈,從介面選擇精靈對話盒中選擇IActiveMovie
介面,然後Delphi 6便會在編輯器中自動產生所有IActiveMovie介面的宣告程式碼,使
用介面精靈的好處是程式師不但更方便,而且在宣告介面定義時也不會出錯。


Delphi 6 的COM精靈可以幫助程式師自動宣告任何COM介面以及COM介面之中的
方法



type
  TIDelphi6 = class(TAutoObject, AccessObject)
  protected
    function Get__Name: WideString; safecall;
    function Get_Attributes: Integer; safecall;
    function Get_FullName: WideString; safecall;
    function Get_IsLoaded: WordBool; safecall;
    function Get_Name: WideString; safecall;
    function Get_Parent: IDispatch; safecall;
    function Get_Properties: AccessObjectProperties; safecall;
    function Get_Type_: Integer; safecall;
    { Protected declarations }
  end;


除了一般的COM物件之外,Delphi 6在支援MTS/COM+方面也以新的Transaction Object
和Transactional Data Module來取代以前的MTS Object和MTS Data Module,讓程式師可
以更方便的開發Microsoft DNA架構的應用系統。



Delphi 6以Transactional Object和Transactional Data Module同時支援MTS/COM+物件


開發Internet/Intranet應用系統的WebSnap元件組


Delphi 6中最重要的新增功能之一應該就要算是能夠讓程式師開發Internet/Intranet應用
系統的新架構和元件,這個新的功能稱為WebSnap。Delphi 6的WebSnap允許程式師
使用元件和視覺化的方式快速開發複雜的Internet/Intranet應用系統。WebSnap的特點
是允許程式師直接在這些元件之中加入稿本語言的能力,並且能夠直接在Delphi的整
合發展環境中撰寫稿本語言,預覽Web應用程式的輸出結果,以及Web應用程式產生
的HTML程式碼。
此外當程式師在開發Web應用程式時,經常需要使用許多的服務,例如處理圖形的元
件,上傳檔案的服務,Session的服務,搜尋檔案的服務,登錄和登出的服務等,
WebSnap都已經製作成了元件可以讓程式師直接使用,程式師再也不需要花費時間撰
寫這些程式碼。下圖便是Delphi 6WebSnap的元件組。


Delphi 6 的WebSnap提供了超過10個的元件


此外Delphi 6提供了Web App Debugger公用程式,允許程式師開發和除錯Web應用程
式,讓開發Web應用程式再也不是痛苦的流程。而WebSnap精靈更允許程式師建立不
同的Web應用程式,以及應用程式使用的快儲方式。例如下圖便是WebSnap精靈的畫
面,從這個畫面中可以看到Delphi 6能夠建立各種型態的Web應用程式。


Delphi 6的WebSnap精靈允許程式師建立各種不同的Web應用系統


在上圖中程式師建立Web應用程式時,也可以點選中間的Components…按鈕選擇
WebSnap精靈在自動建立Web應用程式時使用的WebSnap元件。例如下圖顯示了程式
師可以選擇使用的豐富的元件和服務。


Delphi 6的WebSnap提供了許多開發Web應用系統時需要使用的服務

由於WebSnap狀況結合稿本語言,因此程式師也可以指定WebSnap在自動產生稿本語
言時使用的稿本語言種類,以及產生的PageProducer的型態。例如下圖的畫面顯示了
程式師可以選擇使用JScript或是VBScript,可見WebSnap的彈性十足。


Delphi 6的WebSnap允許程式師使用JavaScript或是VBScript等 稿本語言

最後Delphi 6更棒的一點是WebSnap可以結合前面介紹的客製化View,讓程式師直接
在Delphi的整合發展環境中就可以預覽,開發和檢視Web應用程式的結果。例如下圖
是直接在Delphi的整合發展環境中使用稿本語言修改Web應用程式,而且稿本語言也
具有和Object Pascal一樣以不同顏色顯示不同語言元素的效果。


Delphi 6允許程式師在整合發展環境中直接使用稿本語言撰寫Web應用程式


至於下圖則是在Delphi的整合發展環境中直接檢視Web應用程式的預覽畫面,可以讓
程式師知道Web應用程式將來在瀏覽器中執行的結果。


Delphi 6的客製化View可以讓程式師在開發Internet/Intranet應用程式時在整合發展
環境中檢視Web應用程式的結果


總之,WebSnap讓Delphi 6在開發Internet/Intranet應用系統方面有長足的進步,提供了
非常好的整好開發環境。在未來WebSnap也將移植到Linux平台上,讓Kylix的程式師
也能夠使用相同的元件和技術開發Internet/Intranet應用程式。事實上程式師如果能夠
結合WebSnap和Delphi的資料庫能力,以及COM+的功能,將能夠開發出威力十足的
Web應用系統。

MIDAS的進化版本-DataSnap


在Delphi 6中,MIDAS將改名為DataSnap。DataSn

[1] [2]  下一页


[系统软件]InstallShield Express for delphi制作安装程序定…  [常用软件]InstallShield Express制作Delphi数据库安装程序
[Delphi程序]为什么选择Delphi.Net ?  [Delphi程序]《关于VisiBroker For Delphi的使用》(4)
[Delphi程序]Delphi 程序员代码编写标准指南  [Delphi程序]转贴:Conversion to Delphi 6: Missing unit Pro…
[Delphi程序]Borland Delphi 9 的新特性  [Delphi程序]Delphi 键盘码表
[Delphi程序]Chuck Jazdzewski的离开意味着Delphi的终结吗?  [Delphi程序]Delphi Access violations 问题的解决之道
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台