Delphi XE5是全部Delphi開發人員的必須備升級,而且是來自Embarcadero的獲獎的、多設備應用開發解決方案的最新版本。使用Delphi XE5的新特性,以交付應用Android、 iOS、Windows 和OS X。以PC機、平板電腦和智能手機爲目標,更輕鬆地與更多數據鏈接 - 等等!java
… 等等!
* 已支持 Android 設備的列表linux
Delphi XE4ios |
|
Delphi XE3web |
|
Delphi XE2正則表達式 |
|
Delphi XE算法 |
|
【CSDN8月20日消息】根據國外媒體報道,Embarcadero Technologies公司宣佈推出RAD Studio 2010。開發者能夠利用它提供的便捷的觸摸屏開發框架來建立基於觸摸GUI界面的程序,包括平板電腦、觸摸板和kiosk程序。編程
該版本提供了以下的新特性和功能:windows
建立手勢識別和觸摸控制的程序。api
內置了超過30種的手勢設定,包括上、下、左、右以及像平移、縮放和旋轉。
能夠經過VCL Gesture Designer在組件級對手勢進行可視化設定和添加。
能夠在輸入屏幕上創建虛擬觸摸板和多語言鍵盤。
能夠在只對代碼進行很小的狀況下就能將Delphi和C++ Builder程序升級爲支持觸摸和手勢識別功能。
RAD Studio 2010對於觸摸程序開發的支持獨具特點,由於它能夠和多種版本的Windows無縫接合,包括Windows 2000、XP、Vista和Windows 7,並且支持多種輸入設備,包括單點和多點觸屏幕、觸摸筆和鼠標。
觸摸操做如今已經變成了現實,並且能夠向用戶提供更豐富的交互體驗。從kiosks和POS機到iPhone和Windows 7,手勢識別功能已經成爲使程序更具競爭力的關鍵特性,由於消費者和商家都認識到了天然輸入的便利性。,Embarcadaro公司的Michael Swindell說,隨着Delphi和C++ Builder 2010的發佈,Embarcadero也將提供一套簡單的解決方案,能夠向多種Windows平臺的程序中加入觸摸和手勢識別功能。
RAD Studio 2010的其餘特性還包括:
支持Firebird。Delphi對其提供了本地支持。Embaracaro聲稱Firebird是全球應用最廣的開源數據庫。
新的DataSnap。DataSnap服務器已經擴展到了幾乎全部的架構RIA、JEE、RESTful、AIR等等。
支持Windows 7。RAD Studio預計對Windows 7的API提供支持,開發者能夠利用其Natural Input庫Direct2D圖形庫。
對IDE環境進行了超過120項改進,提高了開發者的使用體驗,提升了工做效率。
小資料:Kiosks,Kiosk ModeKiosk Software普遍用於公共電腦或者嵌入系統(如能夠上網的公共電話、ATM、機場自助服務系統、網吧管理軟件等),這些程序通常都運行於普通的操做系統,但爲了安全以及防止使用者使用其餘的程序,Kiosk通常都會全屏運行並鎖住系統的其餘程序。雖然IE的Kiosk模式沒有鎖住其餘程序,你仍能夠用Alt+Tab來切換,但一般運行Kiosk程序的地方都不會提供鍵盤給你,最多隻是一個僅供最低需求的虛擬鍵盤而已。(譯/曹巳甲)
Delphi2010新發現-類的構造和析構函數功能
Delphi2010發佈了.
雖然憑着對Delphi的熱愛第一時間就安裝了,可是如今多是年紀大了,對新事物缺少興趣了.一直都沒有仔細研究.
今天有點時間試了一下新功能.
原本C#和Delphi.NET是支持類的構造函數/析構函數的(注意不是實例的構造和析構).也就是在模塊初始化/卸載的時候會調用.
這樣有不少好處,好比說類的靜態變量的初始化什麼的均可以在這裏作.
Delphi For Win32對這方面的需求還不是很大.
第一個緣由.歷史上舊版Delphi不支持靜態變量.只能用Unit的全局變量+類函數來模擬.因此類的構造析構基本沒需求.從Delphhi2005仍是2006開始才支持Class var的.記得不太清楚了
第二個緣由.Delphi的Unit有初始化節和反初始化節(initialization/finalization).不少初始化工做均可以在這裏面作.好比說類的靜態變量.因此對類的構造函數需求不是很大.
隨手試了一下Delphi2010.驚喜的發現不知道何時Delphi2010已經開始支持類的構造和析構函數了.易博龍和CodeGear竟然在介紹Delphi2010的新變化的同時都沒有介紹這個特徵.
貼一段代碼:
type TTest = class private class var StaticABC : Integer; //類變量(相似C++的靜態變量.但不徹底等同) var FABC : Integer; //普通成員變量 public class constructor Create();//類的構造函數 class destructor Destroy; //類的析構函數 constructor Create(); //實例的構造函數 destructor Destroy; override; //實例的析構函數 end; { TTest } class constructor TTest.Create; begin StaticABC := 1234; end; class destructor TTest.Destroy; begin end; constructor TTest.Create; begin FABC := StaticABC; end; destructor TTest.Destroy; begin inherited Destroy; end;
呵呵.頗有意思.雖然之前用Unit的initialization/finalization能夠實現.可是若是有了類的構造和析構語法的話代碼的可讀性會更好.
同時還發現結構體(Record)也能夠用同樣的語法.可編譯經過,可是實際上卻沒有效果.估計之後會加上這個功能吧
轉載的delphi2010新功能
一、Object Inspector 中的 Boolean 屬性顯示了 Checkbox
這個改進比較明顯,看下圖就明白了,直接點擊 Checkbox 便可改變 Boolean 的值;
二、能夠用 Tab 鍵和 Shift+Tab 縮進代碼了
這個無法用圖來講明,只能本身體會了,我的以爲,Delphi 1.0 就應該這麼作
三、可維護最近打開的 Projects 和 Files 列表
在菜單 File-Reopen-Propeties 中,可設置最近打開 Projects 和 Files 的顯示數量,並可刪除、清空,以下圖:
四、代碼編輯器的搜索功能加強
看下圖,效果和 Firefox 的搜索功能幾乎一致,搜索框移到了下方,同時高亮搜索詞:
五、代碼自動完成加強:Auto Invoke
剛纔說「里程碑」,主要是指這個功能。
當前的 Delphi 編輯器只有在輸入「.」的時候,纔會出現自動完成列表。在 Delphi 2010 中啓用 Auto Invoke 功能後,當你輸入任意一個字符的時候,都會出現匹配的自動完成列表,和 Visual Studio 差很少。
Auto Invoke 默認是禁用的,在 Tools - Options 中啓用:
下圖是輸入 Show 後出現的自動完成列表,固然,當你輸入第一個字母 S 的時候,自動完成列表已經開始匹配顯示了:
在 Visual Studio 中,當輸入完賦值運算符後,可自動判斷類型並顯示枚舉類型的值列表,當前的 Delphi 2010 還作不到這一點,不過當輸入字符後,也是會按類型匹配的。看下圖,會顯示 Align 屬性的可選值:
當前的 Auto Invoke 用的時候真的是很爽,不過有的時候仍是有些問題,會不合時宜地出現,並且自動完成列表有時會匹配錯誤,編程時有被「干擾」的感受,指望之後的版本能將其改進得更爲「智能」。
6.格式化代碼,Edit-source或ctrl+D,但格式效果不大好,能夠設置一下
7.安裝包標識
第一個圖標表示已安裝
第二個表示未安裝
第三個表示非設計時包
8.拖動調試,這個比較有意思,斷點還能夠回退。看下面的效果
第一次運行的時候,x的值=150
按住33行的向右箭頭不放,拖到32行放開,效果以下圖
再F8走一步,x的值就變成200了
更多的Delphi2010新特性,能夠參考Delphi 2010 Handbook,很是值得看看。
目前還只有英文版的。
http://m8spy.persiangig.com/.ZqB2Ja51KF/Ebooks/Delphi%202010%20Handbook.pdf
此書配套源碼
http://cc.embarcadero.com/Download.aspx?id=27601
讀幫助文檔發現Delphi2009的新特性,象C語言同樣用數組方式使用指針.
傳統的Pascal指針和數組不是等價概念.不能像數組同樣使用下標指針(編譯器特殊處理的PChar類型除外).
而C語言中數組就是數組第一個元素的地址.和指針在必定程度上等價.指針所指向的內容也能夠象數組同樣用下標來訪問.
雖然問題不大可是寫起代碼來就麻煩,並且不直觀.
以下代碼以往的Delphi只能這樣寫.
const rw = 10; rh = 10; procedure SetRects(lpRect: PRect; dwCount : Cardinal); var I : Integer; begin for I := 0 to dwCount - 1 do begin lpRect^ := Rect(I*rw, 0, I*rw+rw, rh); Inc(lpRect); end; end;
或者非要用下標訪問的話就要變通一下.
const rw = 10; rh = 10; procedure SetRects(lpRect: PRect; dwCount : Cardinal); type TRects = array[0..0]of TRect; pRects = ^TRects; var I : Integer; lpRects : pRects; begin lpRects := pRects(lpRect); for I := 0 to dwCount - 1 do begin lpRects[I] := Rect(I*rw, 0, I*rw+rw, rh); end; end;
可是Delphi2009新增了編譯開關,容許象C語言同樣用下標直接訪問數組所指向的元素.
{$POINTERMATH ON} const rw = 10; rh = 10; procedure SetRects(lpRect: PRect; dwCount : Cardinal); var I : Integer; begin for I := 0 to dwCount - 1 do begin lpRect[I] := Rect(I*rw, 0, I*rw+rw, rh); end; end;
呵呵方便多了.
不過要注意默認是{$POINTERMATH OFF}的.
目前多數Delphi2009新特性的介紹
2008年09月16日 星期二 10:43
集中在Unicode,以及一些新的URL上,我試圖從一些不一樣的角度察看一下Delphi2009都有些什麼東西. 首先咱們看到了Tubron的加強,客觀的講,內部的改進確實仍是挺大的,尤爲是在CodeGear人手並非很整齊的狀況下,以前以爲遺憾的地方的意思就是說Delphi在外圍的變化並無跟上其內部的改進速度。 剛纔上面有朋友提及VCL庫,其實咱們仍是不要輕易說什麼是「最好」,固然能夠是最喜歡的,若是咱們對比下JAVA,VCL的進步真的是太慢了,這很大程度上都是以前Borland公司本身的緣由,此次對比RTL中我發現codegear仍舊爲從此在linux上的發展留出了空間,很多條件編譯指令都做了對應調整,咱們有理由等待將來的Delphi for Linux,但願不要再出什麼單獨的kylix版本了。 {$POINTERMATH ON} procedure MoveRects(Rects: PRect; Count: Integer); begin while Count > 0 do begin MoveRect(Rects[Count - 1]); MoveRect((Rects + Count - 1)^); Dec(Count); end; end;
|
內嵌類
內嵌類在類的內部聲明,它被大量的應用在.net framework以及面向對象的編程中,它代表一種概念性關聯關係,而且避免了命名衝突,它一樣支持delphi win32編譯。
定義內嵌類
它使用以下語句定義
type className = class [abstract | sealed] (ancestorType) memberList type nestedTypeDeclaration memberList end;
當內嵌類定義遇到第一個非標識符時終止,例如:procedure, class, type和全部可見性範圍修飾符。內嵌類與容器類一樣適用正常的訪問、可見性規則。一個內嵌類能存取它的容器類實例的變量(如字段,屬性或者方法),可是它必需要有一個參考對象。一個內嵌類能存取類靜態字段(class fields)類屬性(class properties)和類靜態方法(class static methods)且不用參考對象,但必須遵照delphi可見性規則。
內嵌類不增長容器類的大小,創建一個容器類實例時不會同時創建內嵌類的實例,內嵌類與容器類僅僅是定義的上下文關係。
定義和使用內嵌類
下面的例子演示如何去定義和存取內嵌類的字段和方法。
type TOuterClass = class strict private myField: Integer; public type TInnerClass = class public myInnerField: Integer; procedure innerProc; end; procedure outerProc; end;
在實現內嵌類的innerProc方法時,你必須指定它的容器類的名字,例如:
procedure TOuterClass.TInnerClass.innerProc; begin ... end;
能夠用 . 標誌像存取通常的類成員同樣去存取嵌套類的成員。例如:
var x: TOuterClass; y: TOuterClass.TInnerClass; begin x := TOuterClass.Create; x.outerProc; ... y := TOuterClass.TInnerClass.Create; y.innerProc; end;
內嵌常數
常數也能夠一樣在內嵌類型塊中聲明,常數塊的結束標誌與內嵌類塊的結束標誌同樣,關鍵字或可見性修飾符。內嵌常數不支持類型常量,如 Borland.Delphi.System.Currency 或Borland.Delphi.System.TDateTime 。它只支持簡單類型,如:序數,枚舉,字符串,實數等類型。
下面的代碼演示聲明內嵌常量
type TMyClass = class const x = 12; y = TMyClass.x + 23; procedure Hello; private const s = 'A string constant'; end; begin writeln(TMyClass.y); // 輸出y的值 35. end.
delphi2006語言新特性-幫助類
幫助類(Class Helpers)
幫助類是聯合其它類的一種類型,它能爲聯合類(包括它的派生類)增長方法和過程。它爲咱們提供了一種不使用inheritance來擴展一個類的能力,你能夠在任何地方使用幫助類,編譯器自動決定在何時使用原始類仍是增長的幫助類。(注意:幫助類只是一種擴展一個類的方法,可是應該僅僅在爲實現某種新目的而開發新代碼時被使用,而不該該視爲一個設計工具被使用。它是綁定語言和平臺RTL的 )
定義一個幫助類的語法:
type identifierName = class helper [(ancestor list)] for classTypeIdentifierName memberList end;
ancestor list是可選的
一個幫助類不能夠定義實例數據,但容許有類字段(class fields)
可見性規則與memberList語法與通常的類同樣
一個簡單類可定義並聯合多個幫助類,然而,只有一個在源代碼中特殊位置的幫助類才能被應用。在最近的範圍被定義了的幫助類將應用。幫助類的範圍是由delphi風格決定的(在單元中uses子句,由右到左)
(呵呵,上面這段翻譯的好像不太準,暫且這樣吧,歡迎指正)
下面演示定義一個幫助類:
type TMyClass = class procedure MyProc; function MyFunc: Integer; end; ... procedure TMyClass.MyProc; var X: Integer; begin X := MyFunc; end; function TMyClass.MyFunc: Integer; begin ... end; ... type TMyClassHelper = class helper for TMyClass procedure HelloWorld; function MyFunc: Integer; end; ... procedure TMyClassHelper.HelloWorld; begin writeln(Self.ClassName); // Self是TMyClass 類, 不是TMyClassHelper end; function TMyClassHelper.MyFunc: Integer; begin ... end; ... var X: TMyClass; begin X := TMyClass.Create; X.MyProc; // 調用TMyClass.MyProc X.HelloWorld; // 調用TMyClassHelper.HelloWorld X.MyFunc; //調用TMyClassHelper.MyFunc
注意,幫助類的MyFunc函數被調用,由於它的優先於實際的類
1, 簡介
Borland Delphi 2005 是目前delphi的最新版本, 提供了在Microsoft Windows的操做系統和Microsoft .NET 框架 1.1 版本下的快速開發環境, 同時可用Delphi語言(適應win32和.NET 1.1)與C#(只能適應>NET 1.1)開發
產品總覽
Delphi 2005 能夠當作擁有三個不一樣的特性:一個使用Delphi語言(Delphi7的後繼版本)的Win32特性, 和兩個.NET特性:一個使用Delphi 做爲開發語言(Delphi8的後繼版本), 另一個使用C#做爲開發語言. 關於這裹說到的最後一個特性, Delphi 2005 是從 Borland C#Builder 1.0 升級而來的.
結論就是, Delphi2005是做爲Delphi3 到 8和C#Builder開發者的下一個版本, 它在Win32下的快速應用開發和在.NET框架下同樣優秀.
關鍵特性
- 支持三個不一樣的特性: Delphi for Win32, Delphi for .NET 和 C# 都同處於一個開發環境(和調試環境)中.
- 能夠比較容易的在同一個開發環境中移植 Win32 應用程序到.NET中
- 新增一些Delphi語言的新特性如 多單元命名空間, for…in…do循環, 內聯函數, 和其它的代碼優化技術.
- 支持WinForms, ASP.NET WEB Forms 在可視化環境中的開發, 就如Borland本身在.NET和Win32上的VCL框架上應用程序的開發同樣.
- 支持異質的數據訪問(可使用全部的ADO.NET 數據適配器—不只僅是BdpDataAdapter), 多層的數據應用開發可以使用新的 DataSync, DataHub, RemoteServer和RemoteConnection 控件.
- 支持重構來從新組織你的源代碼, 以便提高代碼的可維護性和成功重用代碼的可能性.
- 支持DUnit和NUnit的單元測試, 能夠在Delphi for Win32, Delphi for .NET 和 C#項目中使用極限單元測試框架來來提升你代碼的質量.
- 支持ECO II (Enterprise Core Objects II)- 一種UML相應的對象模型框架和對象持久性, 經過Borland 數據提供者支持多種數據庫, 而且如今也支持ASP.NET.
- 支持ASP.NET的DB Web 控件能使開發更簡單的設計, 開發和分發功能強勁的帶數據驅動的Web 應用程序.
- 支持版本控制和團隊開發, 經過額外的插件StarTeam, 能針對你的項目作特別的務份和提供一個歷史列表視圖,
- 經過janeva for Delphi for .NET和C# 應用程序的解決方案, 內置支持J2EE企業級EJB, 或者CORBA服務器.
2. Borland Delphi 2005
這個白皮書將能從不一樣的範圍分類來討論Borland Delphi 2005 一些重要的加強功能. 首先, 將會說起到IDE 方面的加強, 接着是重構, 使用DUnit和NUnit的單元測試, 在數據訪問和Web 方面的加強, ALM的支持, 最後談到Delphi編繹, 語言和調試器方面的加強.
2.1 IDE
Delphi 2005 的可視開發環境(IDE) 在下面提到的各方面都有了意義重大的擴展和加強.
歡迎界面
歡迎界面已經從新設計過了, 不只顯示最近打開過的項目, 還顯示Borland 開發者網絡和RSS的最新新聞(須要到internet的聯接)
多樣化的特性
Delphi 2005 支持多樣化的特性, 體如今同時支持 Delphi fro Win32, Delphi for .NET,和C#項目. 這裹有個小小的有用提示, 一個個性化圖標會在IDE工具條上顯示當前選擇的類型(Delphi for Win32 對應 , Delphi for .NET對應, 而 C#對應 ).
項目管理器
Delphi 2005 帶的項目管理器如今能顯示整個項目的目錄結構(若是是ASP.NET項目, 甚至還提供了在當前項目目錄下建立和管理子目錄的功能), 這樣能更直觀的讓你知道文件的放置位置和決定那個文件是要分發給用戶的. 在一個項目組中, 咱們可以增長項目到不一樣的目標中(和特性中), 或者從一個項目移動到另一箇中—也就是將一個當即特性轉到另一箇中.
如今項目管理器和對象檢視器已經可以配合使用, 只要你要項目管理器選擇一個文件, 對象檢視器就會顯示對應文件相關的信息, 如文件名, 文件的全路徑, 還會加上相關的屬性如文化,名字, 裝配器的版本號, 或者本地副本的選項,. 大部分顯示的屬性是隻讀的(用灰色字體顯示), 固然, 部分是可以改變的, 如文件名, 本地副本的狀態,. 項目管理器同時能感知 StarTeam, 而且在管理存儲在StarTeam中的項目時, 能根據輸入命令提供相關的上下文感知提示.
備份和歷史列表
Borland Delphi 2005 在你的項目目錄下提供一個隱藏的給你的源碼提供簡易的維護多級別務份和歷史列表的功能,. 這代替了舊的用 ~文件名的方式. 那個 __歷史列表目錄可以包含項目的多個版本(默認是最後十個維護的版本), 而且可以做爲本地的文件版本控制倉庫.
歷史視圖被用來對你的項目文件當前版本的檢查和備份不一樣的版本, 並且還提供了一個很是有用的(智能的)比較不一樣版本間文件區別的視圖. 直觀的顯示你在源代碼中作的加入或移除或修改的動做. 除了能瀏覽代碼的改變以外, 你還能撤銷之前作的改變,回到你之前備份文件的時間點.
歷史視圖同時支持 StarTeam 給你的項目提供更加徹底的團隊視圖歷史列表(參考ALM部分)
浮動的VCL設計器
Borland Delphi 2005 如今提供了對自由浮動設計器的選擇, 就象之前的Delphi7和更前的版本(相對於固定設計器的Delphi8). 默認的狀況是使用嵌入式的設計器, 可是你能在Delphi的提供的選項中找到對應的VCL設計器的那個對話框, 而後去除嵌入設計器的選項來取消嵌入效果.
Delphi 2005 工具選擇對話框
這個功能不只能讓你同時觀察你的Form設計狀況和源代碼, 還讓你可以在設計時同時觀察多個Form和數據模塊.
同步編輯
Borland Delphi 2005 提供一個新的同步編輯功能, 它容許你在一個選擇的代碼區域內修改多個出現的變量 (例如, 容許你同時對它們重命名). 注意這個功能比較有限的,只適應用小區域的源代碼修改中使用(如一個過程或方法中的代碼), 若是你想在一個大的代碼區修改標識符, 建議你仍是使用重構, 它使用帶有語法和語義分析引擎.
Delphi 2005 同步編輯的效果
錯誤實時提示
Borland Delphi 2005 的IDE提供了一個新的功能叫錯誤實時提示(Error Insight), 能夠在你輸入delphi, C#, HTML代碼的同時高亮顯示輸入的錯誤語法. 錯誤實時提示會在錯誤的語法下面顯示一個紅色的斜體提示, 該信息將包括關於對應錯誤的更多信息. 這個功能甚至可以幫你在開始編繹項目以前就能修正源代碼中的語法錯誤. 此外, 對於未聲明的標識符各誤拼寫的關鍵詞和保留字, 錯誤實時提示還能誤別出該符號並無在當前範圍聲明(就好象在一個命名空間中的類型在被使用前, 必須用uses 或者using標識出來)
關聯查找
Borland Delphi 2005 IDE擁有一種加強的方法來查找關聯代碼, 它後臺是使用重構引擎, 能夠經過查找結果來導航到你的源代碼. 你能查找本地(在一個單獨的源文件中)的符號引用(如字段, 方法, 屬性, 變量等), 或者你能在項目的全部源文件中查找和檢查全部相關引用,
相關引用用一個樹狀列表列出, 每一個節點直接對應的項目中的代碼. 若是你雙擊一個節點, 代碼編輯器將出現並顯示到對應的源代碼. 這是一種簡便快速的訪問源文件的方法.
Dlphi 2005 關聯查找樹狀列表查找結果
關聯查找結果老是能夠在菜單」views」 下找到, 樹狀列表甚至能在同時包含不一樣的查詢結果, 而且顯示上一次的查詢結果.
幫助實時提示
新的幫助實時提示針對標識符提供了相似類,屬性,方法或者事件在輸入時相似的行爲. 幫助實時提示在不一樣的情況下會有兩種不一樣的顯示方法:或者用彈出氣泡的方式, 或者和彈出的代碼實時提示結合在一塊兒顯示.
當將鼠標移過一個標識符是時就會彈出一個氣泡式窗口的實時幫助提供. 它將會針對特定的標識符產生一個工具性的提示窗口來顯示相關的信息, 包括到在線幫助的相關連接.
你還能獲得一個和代碼實時提示合成的幫助實時提示窗口, 在裹面會根據代碼實時提示窗口中選中的節點對應的條目給出進一步的幫助提示. 在你選擇了一個屬性, 方法或者事件後, 又須要知道那一個才能知足你想要的目的的時候, 顯得特別有用.
Delphi 2005 幫助實時提示配合代碼實時提示時
幫助實時提示同樣能對你本身定義的類和方法產生相關提示.
結構視圖
Delphi 2005 IDE左上角包含了一個結構視圖. 這個窗口在某些場合特別有用. 它能顯示代碼編繹器中源代碼的繼承結構. 一樣, 它也能顯示HTML設計器中包含的HTML控件, 就象VCL窗體設計器顯示可視化控件的繼續結構同樣. 對於源代碼結構, 結構視圖還能動態的在頂層出現一個」錯誤」節點顯示錯誤實時提示窗口中找到的全部語法錯誤.
Delphi 2005 結構視圖
當檢看可視控件的結構時, 你能雙擊結構視圖中對應的條目來定位到窗體設計器中對應的控件. 當你觀察相應HTML 源代碼的結構時, 你能雙擊相應的條目來轉到代碼編繹器中對應的聲明位置.
查找結果
如今當你執行一個查找時, 結果會根據文件名分組顯示在一個直觀的樹狀控件中. 你能直接經過文件瀏覽它們, 也能打開節點來觀察在相應文件中找到的每個對應點.
工具面板
如今工具面板的定位機制已經獲得加強, 你只要輸入控件的第一個字母就能當即獲得一個只包含起始字母與你輸入相符的過濾後的類別列表. 而且會高亮顯示顯示你輸入的字母, 和可以在你繼續輸入字母時進一步的過濾. 按」enter」鍵將會在設計器中的窗口放置上一個當前選擇的控件.
工具面板嚮導
除了顯示控件(在設計視圖)或者代碼摘要(當處於代碼編繹器中)以外, 工具面板如今還能在對象倉庫開始一個新項目時顯示一個嚮導, 並將對象倉庫中的類別轉成工具面板上的類別. 這個功能容許你可以用快捷鍵輕易的在嚮導中建立新的文件, 項目, 對象.
2.2 重構
重構是一種對存在的源代碼從新組織結構的過程, 在沒有修改代碼的行爲和輸出的前提下, 使代碼更容易被重用和維護.
Borland Delphi 2005 帶的重構支持包括許多用用的特性, 有」提取方法」到聲明新的變量或字段, 到提取成資源字符串, 再到重命名標識符和復位義命名空間和uses 子句.
Delphi 2005 重構菜單
重命名標識符[Delphi/C#]
While the Sync Edit feature allows you to lexically rename identifiers in a selected section of source code, for larger sections of source code Delphi 2005 refactoring offers the option to rename symbols (like fields, methods, properties, variables, etc.) using Refactor - Rename. The refactoring dialog will even allow you to view all references before refactoring (so you can verify all places where the rename will be made).
雖然代碼同步編號器可讓你在選擇的源代碼區域中重命名標識符, 對於範圍更大的源代碼, Delphi 2005的重構提供了rename這個功能來修改標識符(如字段, 方法, 屬性, 變量等).重構對話框甚至還可讓你在重構以前先瀏覽全部涉及到的引用(這樣,你能驗證全部被修改到的地方).
This feature adds real refactoring intelligence to the standard search and replace functionality, by not just renaming any symbol within the current scope, but only those that are indeed the same as the selected symbol .For example, if you have both a method X and a local variable X, and you want to rename only the method X, Refactor - Rename ensures the local variable X will be left alone, as it recognizes it’s not the same as the method X).
這個智能重構的特性被融合到查找,替換功能中, 但它不只用在修改當前範圍的全部標識符, 還能只修改與選擇的標識符真正相關聯的代碼. 例如, 若是你同時有一個方法名爲X和一個局部變量X, 當你只是想修改方法X的名字時, 重構中的重命名功能會確保忽略對局部變量X的修改, 由於它能區分變量X和方法X並不相同.
變量聲明 [Delphi]
當在寫代碼的時候, 偶爾會尚未聲明一個變量就先使用了. Delphi 2005 的重構容許你使用重構中的Declare Variabl來自動聲明這類變量, 它會顯示一個對話框來讓你指定變量對應類型, 而後增長這個變量的聲明到當前區域.
這個選項只在當前變量尚未聲明時纔可用, 固然應變是這樣, 這樣的好處是, 它還容許你將精力集中在代碼和算法邏輯中, 而不用移動到代碼的首端來增長一個變量的聲明. 變量聲明和錯誤實時提示配合得很好, 當在錯誤實時中出現一個高亮顯示的未聲明變量提示時, 只要簡單的右擊這個變量來聲明就可.
字段聲明[Delphi]
和聲明未聲明的變量相似, Delphi 2005 重構提供了重構--Declare Field來容許你你給一個類聲明字段. 若是在同範圍內要聲明的字段和已經存在的字段名有衝突, 重構將會出現一個對話框來讓你解決衝突.
這個功能將會在給類擴展增長功能時節省不少時間, 不會再強迫你轉到類的聲明部分, 而後手工給字段定義.
抽出方法[Delphi]
Delphi 2005 重構功能容許你選擇源代碼的一部分(可能這部分在幾個不一樣的地方重複出現, 或者其它地方須要相同的功能), 並將這部分代碼抽出來轉爲一個方法, 這個重構生成的方法將根據聲明的變量自動取得相應的參數列表, 而原來選擇部分代碼的位置將會由一個呼叫新重構方法的代碼取代. 將一個長的代碼段分割成幾個方法可以提升代碼的可重用性和可維護性.
抽出資源字符串[Delphi]
再也沒有比用硬編碼引用字符串來實現部分源代碼的國際化多語言支持困難了. Delphi 2005 重構功能如今容許你將使用到的字符串抽出來生成資源(在你的代碼實現部分增長資源字符的聲明)
導入命名空間[Delphi/C#]
有時, 你會用到在其它命名空間中定義的類, 方法, 字段或者類型, 爲了將相應的命名空間增長到uses子句中(相對Borland Delphi)或者 using子句中(相對C#), Delphi 2005 的重構提供了自動將選擇標識符對應的命名空間導入的功能.參看重構中的Import Namespace..
這個功能將讓你省下不少查找命名空間的時間
2.3 NUnit/DUnit 單元測試
單元測試是一種給代碼增長測試的開發方法, 它經過運行測試項目來運行和驗證他們本身, 並根據源碼的有效性產生報告. 最好的效果, 單元測試應該在一開始就正確應用, 當你在寫實際代碼的同時就應該增長相應測試單元到其中(一些人甚至認爲你應該先寫測試代碼, 再寫真正代碼來測試), 單元測試在重構中也扮演了重要的角色,若是隻是爲了驗證重構後的源碼是否有改變原來的行爲, 這是一個正確的選擇.
DUnit/NUnit
單元測試框架平時也稱爲極限測試框架, 和極限編程有關.Delphi 2005 包括DUnit(相對Win32和.Net) 和 NUnit. DUnit (http://dunit.sourceforge.net/) 是Delphi 版本的單元測試框架(同時適應Win32 和 .NET), 而 NUnit (http://www.nunit.org/) 是和種 .NET 語言無關的單元測試框架, 能同時用在C#和Delphi for .NET 上.
測試項目嚮導
對每個項目而言, 你能經過測試項目嚮導增長一個對應的測試項目到項目組中. 對於 Delphi Win32項目, 將是使用DUnit 測試框架,. 對於 Delphi for .NET 項目, 你能選擇使用.NET版本的DUnit 測試框架, 或者選擇NUnit 測試框架, 而最後對C#項目來講, 將是使用NUnit 測試框架. DUnit(相應於.NET和Win32)和NUnit 測試框架都提供了能夠選擇生成圖形界面或者控制檯方式來執行來顯示測試結果.
測試樣例嚮導
在一個測試項目裹面, 你能使用測試用例嚮導來增長一個特定的測試用例以便對項目中的某些單元進行測試. 對每個單元, 你能選擇須要的類和方法增長到測試用例中. 同時, 也會生成一個測試樣例的例子, 讓你之後可方便的參照增長本身的測試代碼.
測試運行者
只要給測試項目中增長測試用例, 就會產生獨立的測試運行環境, 你就能在Delphi 2005 的IDE中開始運行相關的測試, 而且觀察運行結果. 你能獲得全部錯誤和運行失敗(若是有的話)的反饋報告, 而且出錯時, 測試將會中止, 並在控制檯顯示出結果.
使用單元測試, 能幫助提升你代碼的質量, 可維護性, 和可重用性. Delphi 2005 IDE整合了單元測試使更容易實現單元測試.
2.4 數據庫
Delphi 2005 提供對ADO.NET , VCL, VCL for .NET 的數據訪問作得同樣的好!
ADO.NET 數據訪問支持
Delphi 2005 實現了很多數據訪問功能的加強, 最顯着的是ADO.NET 方面, 但在BDE, dbExpress和新增的dbGO for ADO.NET 也有很多改進.
加強的Borland 數據提供者
如今有很多ADO.NET對應的Borland數據提供者獲得改進, 包括支持 interBase 的Boolean 字段, Oracle 包機制, 本地數據表支持, 得到數據結構表, 還有支持 Sybase 12.5.
還有以下的通過認證的BDP ADO.NET 數據提供者驅動: Borland InterBase 7.5(也能在InterBase7.1,7.0和6.5上工做, 但沒通過認證), Oracle 10g(同時也能在Oracle 9.2.0 和 9.1.0上運行), IBM DB2 UDB 8.x(能上7.x 上工做), 此外, 還能在Microsoft SQL Server 2000, Microsoft MSDE 2000, Microsoft Access 2000, 和Sybase 12.5上工做.
加強的設計器
數據庫設計中一個重要組成部分ADO.NET設計器在Delphi 2005 中也獲得加強. 增長了新的存儲過程測試支持, 這樣你就能測試指定存儲過程, 包括輸入參數, 而後運行存儲過程而且檢查返回參數的值(若是有的話)
Delphi 2005 測試SUB_TOT_BUDGET存儲過程對話框
數據表映像功能幫助你爲BdpDataAdapter指定映像到相應的數據表. 你能設定DataTable上的欄目到一個帶有更具體描述的內存表DataSet中映射關係. 你也能增長或移除內存數據表中的欄目.
對象設計器如今也爲SQLConnection控件提供了一個聯接字符串編輯器, 容許你指定ADO.NET provider的聯接字符串.
異類數據支持, BDP 遠程對象
新ADO.NET控件中提供了RemoteServer 和 RemoteConnection這兩個控件來支持快速開發三層的應用程序(使用.NET 遠程對象的結構). 另外兩個新的ADO.NET控件, DataHub和DataSync, 支持將不一樣類數據庫聚合到一個數據集. 這四個控件能組合使用, 這會致使分佈式應用程序會使用大量不一樣的ADO.NET數據提供者. 在這個結構, DataHub和RemoteConnection處於瘦客戶層中, 而RemoteServer和DataSync 控件將處於服務層, 並聯接到數據提供者.
BdpDataAdapter的自動更新功能也獲得加強, 如今能解決多數據表更新, 而且能處理更多的錯誤狀況.
數據遷移
BDP控件組中有一個特別的控件bdpCopyTable中支持數據遷移操做, 它使你可以將BDP支持的數據表複製到另一種類型上.
數據集類型(.NET)
數據表類型如今可以編繹成標準.NET裝配件. 它還支持Web Services的數據集. 項目管理器提供一個上下文相關的菜單來設置數據集中的關聯和數據表編輯集合, 這樣, 你能更方便的修改數據集類型
加強的數據庫瀏覽器
BDP 數據提供者相應的數據庫瀏覽器已經在幾個地方做了加強。 如今能夠簡單的將數據從一個BDP數據提供者遷移到另一個,這個功能可以容許你將一個數據表從一個BDP數據提供者複製另一個上面. 這樣會複製和從新創建複製目標數據表的元數據, 即便這個數據根本就是來之不一樣的數據源, 如將Oracle的數據遷移到MSSQL上.這和BdpCopy控件的行爲相似.
數據庫瀏覽器還有查看額外的元數據的能力, 而且容許你直接在數據庫瀏覽器中查看和修改數據庫模型, 你能直接在裹面建立新的數據表, 修改數據表還有刪除存在的數據表.
同時, 你還能夠直接在數據庫瀏覽器中拖拉一個存儲過程到窗體設計器中, 這樣, 將會建立一個BdpConnection(若是須要)和一個BdpCommand實例, 而且自動設置BdpCommand的參數對應到指定的存儲過程.
VCL和VCL.NET的數據庫支持
Delphi 2005中對VCL和VCL.NET的數據庫支持由BDE, dbExpress和 dbGo for ADO,以及InterBase Express(IBX)組成, 這些數據訪問技術同時在於VCL和VCL.NET的項目中可用, 這樣, 提供了一個無縫的升級Win32程序到.NET的方法.
dbGO for ADO
在建立一個VCL.NET的應用程序, Delphi 2005 如今同時支持Win32和.NET的 dbGO for ADO, 這樣使移植Win32 dbGO for ADO的應用程序到.NET框架變爲可能, dbGO for ADO控件須要安裝MDAC 2.8 來支持.
dbExpress
dbExpress 控件組擴展了TSimpleDataSet來支持.NET, 而且提高了TSQLStoredProc的執行效率, 同時也對元數據進行改進.
下列的驅動如今已經經過認證可直接用在dbExpress: Borland InterBase 7.5 (同時也能使用 InterBase 7.1, 7.0 和6.5, 但沒通過認證), Oracle 10g (能使用 Oracle 9.2.0 和 9.1.0), IBM DB2 UDB 8.x (能使用 7.x), Microsoft SQL Server 2000, IBM Informix 9.x, SQL Anywhere 9 (能使用 ASA 8), MySQL 4.0.x, and Sybase 12.5.
BDE
針對VCL和VCL.NET應用程序的Borland 數據庫引擎(BDE), 用來支持本地的dBASE和Paradox數據集訪問. BDE for .NET 版本如今已經改進, 再也不須要指定路徑, 能自動裝載BDE相關的DLL文件了, 它還改進了訪問BLOB的性能, 還新增了幾個之前沒有的, 針對.NET的BDE控件, 它們是: TUpdateSQL, TNestedTable, 和 TStoredProc.
IBX
InterBase Express (IBX)提供VCL和VCL.NET應用程序直接聯接到InterBase 的功能.
2.5 Web
Delphi 2005 包含了大量在VCL(Win32和.NET)和ASP.NET下加強的Web開發技術.
Web部署管理器
Delphi 2005 親增了一個Web部署管理器, 能使用在ASP.NET Web Form各ASP.NET WEB Service項目中, 同時期intraWeb可以同時適應VCL和VCL for .NET.Web部署管理器可以聯接到目錄(本地的或者網絡上的)和FTP 目標. 部署管理器的窗口還能同時顯示本地的文件(從項目目錄中)和遠程的文件(從目錄或者FTP位置), 並且你只需單擊一個選項就可實現整個項目的部署. 你還能執行比較, 移除文件等到操做. 部署的設置就與你的項目文件保存在一塊兒, 因此, 你能以一致的配置方式在不一樣的時間部署你的項目. 這個是一種很是有效和快捷的部署方式.
除了支持ASP.NET和IntraWeb項目以外, Web部署管理器還能擴展來支持的其它不一樣的項目類型.
Web數據控件
Web 數據控件能用來編寫功能強大的數據驅動的ASP.NET web 窗體應用. Delphi2005 引入了大量新的Web數據控件, 包括DBWebAggregateControl, DBWebSound, DBWebVideo, 和 DBWebNavigationExtender等,.
DBWebAggregateControl能用來顯示數據集中各個欄目的聚合值, 實際上可能用來顯示平均值, 計數值, 最小值, 最大值, 總額.
DBWebSound和DBWebVideo控件被加進來支持音頻和視頻格式. 能夠經過一個DBWebDataSource控件聯接到數據集對應的字段或給它一個URL路徑.
DBWebNavigationExtender控件在下列這種狀況下很是有用, 就是你想將數據修改發送到數據集, 而又不想使用DBWebNavigation控件時(特別是控件中那個ApplyToServer按鈕). DBWebNavigationExtender是一個非可視化控件, 能被用來擴展標準的Web控件--如按鈕—它帶有的功能和DBWebNavigator的按鈕同樣. 因此, 你能用它來編寫一個本身的導航條控件. 除了這四個新Web控件外, DbWebDataSource控件被擴展增長了一個OnAutoApplyRequest事件, 而且如今支持嵌套的更新和刪除.
除了DbWebDataSource以外, Web數據控件如今還能聯接到EcoDataSource—一個聯接到ECO II ExpressionHandler的控件.
Delphi 2005 還提供了一個新的Web數據控件嚮導讓你能編寫兼容於ASP.NET控件的本身的Web數據控件(一樣能聯接到DbWebDataSource 或者 EcoDataSource)
Web數據控件如今支持XML緩存, 這個強大的功能能給web客戶端實現一個服務端公文包.
Web 數據導航
Delphi 2005 Web數據控件如今擁有控制導航命令的功能, 它使用相應的導航API, 如RegisterNextControl, RegisterPreviousControl, RegisterFirstControl, RegisterLastControl, RegisterInsertControl, RegisterDeleteControl, RegisterUpdateControl, RegisterCancelControl, RegisterUndoControl, RegisterUndoAllControl, RegisterApplyControl, RegisterRefreshControl, 和 RegisterGoToControl.
服務端控件
ASP.NET的HTML類控件如今能在後臺文件用代碼表示成控件了, 經過選用」Run AS Server Control」這個選項, 將會增長一個 runat=server 屬性到控件的腳本中, 這就好象在控件的源碼文件中直接聲明.
模板編輯器
Delphi 2005 如今爲DataGrid和DataList增長了一個模板編輯器, 讓你可以定義和更容易的編輯你本身定製的欄目模板.
IntraWeb
當使用VCL(Win32或者.NET)時, Delphi 2005 支持使用AtoZedSoftware (www.atozed.com)公司的IntraWeb來開發應用. IntraWeb容許快速的所見即所得式來設計Web應用程序, 很象ASP.NET, 但仍是有不少地方不一樣. IntraWeb 對的優勢就是對用戶來講不用關心底層的HTML語法和可以幫用戶管理網頁的狀態, 這些ASP.NET是作不到的. IntraWeb 類的WEB 應用程序和非可視化的VCL控件是兼容的, 如數據訪問面板中的BDE, dbExpress, dbGo for ADO和InterBase Express(這個意味着能夠從Win32遷移升級到.NET), 相反, ASP.NET的應用程序要擁有數據訪問的能力必須使用原生的.NET控件, 如ADO.NET和BDP.
2.6 企業核心對象 ECO II
Borland C#Builder 1.0和 Delphi8帶了初版的ECO, 如今在Delphi 2005 中獲得了極大的增強來適應有高伸縮性要求的企業應用開發. 相對初始版本, 在 ECO II有很多改進加強.
其中最重要的加強總結以下:
- 支持可伸縮性, 分佈式應用程序
- 支持 ASP.NET ( Web Forms 和 Web Services)
- 支持映像到一個存在的數據庫
- 針對易用性優化, 以使使用ECO流程更加容易
可伸縮性, 分佈式應用
最重要的部分是, ECO II 如今具備企業級的伸縮能力. 相對初版本的client/server 解決方案, ECO II 同時支持client/server 和遠程解決方案. 當你編寫有伸縮能力的ASP.NET或者WinForms應用程序時, 有幾個可能採用的結構. 都很是簡單易用. 在同進程中或不一樣多進程中, 想同步多個不一樣緩存對象如EcoSpaces 時, 能夠用新增的PersistenceMapper來管理,. 同步持久性的映射關係能夠在同進程內部自我執行, 或者, 更可能的狀況, 在服務器中的一個進程運行.
ECO II and ASP.NET
如今使用Dephi 2005, 咱們可以組合ECO II和ASP.NET一塊兒使用, 同時適合ASP.NET Web窗體和ASP.NET Web 服務方式.Borland 的Web數據控件經過給EcoSapce綁定到一個新的EcoDataSource組件來導出對象, 這是用OCL的表達方式來輸出一個數據源, 而且還能產生一個數據感知的ASP.NET WEB 窗體中. 一樣的操做能適合任何經常使用的原生ASP.NET Web 控件. ECO 組件, 如ExpressionHandler, 可以提供一個能夠當成DataSet 的元素列表, 而且可綁定到任何ASP.NET 組件上, 如DataList 和 DataGrid. 由於對ASP.NET應用程序提出的請求都是無狀態的, 咱們可以在session 或者在應用層次上維護EcoSpace的狀態.
ECO II 使用樂觀鎖, 當發生衝突時, 會使用衝突決議來決定執行正確的動做.特別在當一個Eco Sapce檢測到在後臺數據庫的數據和在EcoSpace中保存的」舊值」不一樣時, 它將會註冊一個衝突到EcoSpace內部列表中. 開發者能調用RetrieveChanges來獲得其它EcoSapces中發生的任何改變, 還可用GetChanges來收集未解決的衝突, 並決定如何處理(一般由最終用戶控制決定如何解決)
Delphi 2005 設計時的ECO II ASP.NET Web 窗體
映像到現存的數據庫
帶有ECO II的Delphi 2005 如今有可能利用現存數據庫來實現應用程序持久性. 它是利用一個新增強的使用XML文件模型驅動的對象-關聯映像來實現. 這個強大的菜單達已存在的MS SQL server, ORACLE 或者 InterBase 數據庫, 而且如UML模型同樣創建映像模型, 而且用類將數據庫的數據封裝起來.
加強的EcoSpace設計器
EcoSapce 的功能在Delphi 2005中獲得不少的增長, 包括擁有產生默認的XML模型映像文件, 將ECOI的數據庫格式轉爲ECO II的格式, 拆包/包裝一個現存的數據庫. EcoSpace設計器同時加強了氣泡式提示, 顯示當前一系列須要完成任務的列表, 例以下圖的PersistenceMapperBdp.
Delphi 2005 ECO II 設計時氣泡式提示
工做任務列表會自動檢查, 因此, 你永遠都會獲得一個最新提示, 提示你什麼是已經完成的, 那一步還須要繼續工做.
另一個用氣泡提示的例子, 當你打算打開一個新的ECO包時, 氣泡提示會顯示全部你選擇的ECO包中定義的類名.
ECO II 項目對象
Delphi 2005 如今能產生幾個不一樣的ECO II項目. 對於C#類型, 咱們能建立一個ECO ASP.NET Web應用程序, 或者ECO ASP.NET Web Service, 或者 DLL中的ECO Package(因此咱們能在另外的項目中引用這個EcoSapce來使用對應的DLL), 還有ECO WinForms 應用程序. 對於Delphi for .NET類型, 咱們能建立ECO ASP.NET Web 應用程序, ECO ASP.NET Web Service和ECO WinForms 應用程序.
2.7 ALM
Delphi 2005 內嵌支持Borland 應用程序生命週期管理套件, 包括CaliberRM, StarTeam, 和 Janeva
整合StarTeam
StarTeam 提供源碼版本控制的支持, 包括需求管理, 缺陷跟蹤, 分組討論記錄, 遠程協做開發. Delphi 2005 包含一個內置的StarTeam客戶端, 能夠從菜單StarTeam或者項目管理器的右鍵菜單中調用, 你能夠在Delphi 2005 的IDE界面中操做StarTeam. 你能將一個項目放到StarTeam中, 能夠檢出文件, 也能夠導入文件, 或者恢復到之前舊版本的代碼. 鎖定或者解鎖StarTeam倉庫中的文件, 等等操做.
此外, 歷史管理器還支持StarTeam, 因此, 能夠在本地的備份中或者StarTeam的倉庫中訪問,比較和恢復備份的文件.
內置Janeva
Delphi 2005 內置支持Janeva(在企業版和設計師版). Janeva能用來聯接.NET客戶端(C#或者Delphi for .NET編寫)到 J2EE的EJB 或者 CORBA 對象中. 當安裝了janeva(也就是安裝了Janeva IDE 插件), 在項目管理器的項目節點上會新增兩個菜單, Add J2EE Reference... 和 Add CORBA Reference..., 能夠用來增長特定的引用.
菜單Add J2EE Reference...在你選擇從一個.jar文件選擇一個EJB時會出現一個對話框, 而當你Add CORBA Reference...會在你選擇一個包含接口定義的CORBA對象的.idl文件時顯示一個對話框.. 在導入.jar或者.idl文件後, 你將獲得一個原生對象, 它能夠直接在.NET客戶端使用, 如今將再也不須要額外的層(象Web Service 或其它網關類軟件), 而是利用 Janeva 裝配器直接聯接到J2EE EJB或者CORBA對象上. 之前版本的Janeva插件(C#Builder帶的)能產生C#代碼, 但Delphi 2005 產生的裝配件能夠被任何.NET語言使用. 如今的Janeva 插件嚮導會根據janeva客戶端軟件產生相應的參數, 而後自動產生對應的app.config 文件.
*Janeva 要求分發你的應用程序時要帶有運行時許可證, 你可在Borland 的銷售許可中找到
2.8 編繹器/語言/調試器
Delphi 2005 編繹器, 語法, 調試器都有很多加強.
編繹器和語法的加強
Delphi 2005 編繹器實現了幾個性能有關的加強, 使編輯速度加快了. 編繹器如今已經支持Unicode和UTF8格式的源代碼文件, 可使用Unicode來定義標識符和符號.
For ... in ... do
Delphi 語言增長了一個新的 for-loop 語法. 和 foreach 結構相似. 這個強大的特性可用來迭代訪問一個集合的值.
內聯函數
Win32和.NET的Delphi語言都增長了內聯函數, 使用它能提高程序的性能. 它取代了直接呼叫例程, 而是直接將被呼叫的例程的代碼放到呼叫代碼的位置(節省了呼叫和返回的時間, 還有參數管理的時間). 這個對小的例程, 不在同一單元範圍的例程, 或者帶有多參數的例程很是有用. 而對大的例程, 在應用內聯以前要仔細考慮效率和生成代碼大少之間的利弊.
咱們能直接用inline來標識一個內聯例程, 還可使用{$INLINE AUTO}這個編繹指示. 後一個操做, 會讓編繹器本身選擇那些看起來會提高系統性能的例程進行內聯. 使用{$INLINE ON}編繹指示是你指定了從這個編繹指示開始的例程都將用內聯方式.
有不少反對者認爲在編繹器中並無實現內聯, 例如, 即便你能內聯包(裝配件)中的不內單元的例程,你不能跨包進行內聯. 一樣, 不可能內聯虛方法, 動態方法或者消息方法, 一樣不能內聯接口和dispinterfaces.
多單元命名空間
上一個版本的Delphi for .NET 編繹器採用了將一個單元映像到一個命名空間的方法(這樣單元的名字將就是命名空間的名字). Delphi 2005 中擴展了這種方法, 如今一個命名空間能夠由幾個單元組成. 例如帶一個單元名爲Comp.Group.MyUnit.pas, 左手邊的Comp.Group是命名空間的名字, 而MyUnit.pas就是在命句空間裏的一個局部單元範圍. 這個可讓咱們使用多個單元而設置他們同屬於一個命名空間(處理ASP.NET 的自定義控件是, 如今能用一個單一的控件前綴).
Delphi2005新的命名空間功能帶來的另外一個效果是, 如今有可能使用Delphi2005來給現存的命句空間擴展功能. 例如, 能夠新增一個MyUnit.pas單元給System Web 命名空間擴展新的類和類型 護展了的命名空間將成爲全部包含System.Web.MyUnit.pas的應用程序和裝配器的一部分.
加強的調試器
Delphi 2005 Win32的調試器如今加強了對沒有帶調節試信息的Win32堆結構的支持. 當在IDE中調試時, 還帶有一個專門處理異常的對話框. 當一個異常被引起時, 將會有一個對話框彈出來讓你有機會選擇忽略這個異常類型 仍是檢查這個異常對象, 包括一個選項來決定是真正引起仍是繼續執行.
斷點列表
內置編輯器也增強了斷點列表, 如今很適合用在條件句中或者羣組中, 啓用和停用斷點能夠簡單的在一個CheckBox 列表選擇就可. 這樣就不用彈出一個對話框選擇, 能夠加速設置斷點.
Delphi 2005 帶有可編輯字段的斷點列表
在斷點窗口還有新的工具條.經過它你能直接刪除一個斷點, 或者刪除所有, 或者使所有當即都啓用, 或者編輯某個斷點的屬性.
新的調試視圖
Delphi 2005 包含4個新的Delphi 窗口. Borland Delphi8 for .NET提供了斷點的調試窗口, 調棧窗口, 監視窗口,線程和事件日誌. Delphi 2005 增長了FPU, 本地變量, CPU和模塊窗口.
Delphi 2005 如今還提供了一個模塊窗口, 能夠顯示應用域, 而且容許你操做應用域中的命名空間和配件的細節. 你可以按名字或者基地址來排序顯示模塊.
CUP窗口是顯示當前源碼, 它能顯示IL(中間語言)和本地機器彙編語言,還有僞代碼
Delphi 2005 混合Pascal, ILASM和機器碼的CPU 窗口
並行調試
使用Delphi 2005 IDE不只能夠用項目管理器同時裝載多個項目, 你還能同時運行Win32和.NET調試器。 你能夠在同一個開發環境中調試Win32和.NET應用程序. 你甚至能夠同時運行兩個調試器, 在項目管理器中切換到不一樣的項目(從一個語言切換到另一種)
總結
這個白皮書介紹了Delphi 2005 的關鍵新功能, 也介紹了一些已存在的技術的加強部分.
就如你所看到的, IDE擁有一個加強的歡迎頁, 支持多語言, 備份歷史文件支持(可選擇內嵌的StarTeam), 浮動的VCL設計器, 同步編輯器, 實時錯誤提示, 實時幫助提示, 結構視圖, 幫助查找, 更好的檢索查找結果的功能, 工具面板嚮導幫助你更快的開始一個新項目.
重構也是Delphi 2005 中的一個重要的新特性, 提供了重命名符號, 聲明變量, 聲明字段, 抽出方法, 抽出資源字符串,到導入命名空間.
另一個額外重大的支持是DUnit和NUnit單元測試, 內置於IDE的測試項目和測試例程嚮導.
在數據庫方面, BDP組件更新了新的驅動, 增長了BdpCopyTable 組件, DataSync t DataHub組件來支持異構的數據庫. 而RemoteServer新增了RemoteConnection組件來編寫三層的.NET數據庫應用(DataSync 和 DataHub, 若是你須要, 能夠甚至是異構的數據庫或者三層).
對於Web開發, ASP.NET的調試器獲得加強, 新增了dbWeb控件來處理計算的數據, 聲音, 視頻和導向條事件, 支持DataGrid和DataList的模板編繹器, 最後, intraWeb同時支持Win32和.NET WEB應用開發.
企業核心對象(如今是ECO II)也增強了支持可伸縮性, 分佈式開發, 支持ASP.NET(普通的和dbWeb控件), 而且具備在ECO模式中映像到已存在數據庫的能力.
Delphi 2005 提供內嵌的Borland ALM工具, 包括StarTeam,和Janeva(能夠聯接J2EE和CORBA服務器).
最後, 但不是最不重要的, 在編繹器和Delphi語言的許多方面都獲得加強,如新的 for…in 循環, 內聯函數, 跨單元命名空間. 調試器獲得加強, 使用了更好的斷點列表新的.NET調試窗口, 和併發的Win32和.NET項目調試.
有史以來最好的Delphi
不管你的目的是在Microsoft Windows操做系統仍是在Microsoft .NET1.1框架版本下開發組件或者應用程序,, Delphi 2005 對現代Windows開發提供了普遍的, 高生產力的, 高質量的支持。