Delphi XE6新增特性及功能 (2014-05-20 01:30:40)轉載▼ 標簽: it 分類: DelphiXE6 Delphi 6新增了一些特性並增強了原有的功能,主要有以下幾個方面: IDE(整合開發環境) Internet XML(擴展標記語言) Compiler(編譯器) COM/Active X Database support(數據庫支持) CORBA Actions(動作) Custom Variants(可定義的可變類型) VCL 單元和特性 RTL單元和特性 Cross-platform development(跨平台開發) Translation tools(翻譯工具) Deployment changes(發布機制) Help system extensibility(擴展的幫助系統) 注意:某些特性不是所有Delphi版本都有。 VCL單元及特性 新的VCL單元以及新的特性(所有版本) 新增組件: TLabeledEdit TLabeledEdit是ExtCtrls.pas單元中新增加的,它演示了如何使用子組件。TLabeledEdit是一個帶有標簽的編輯控件。標簽(Label)是這個控件的屬性之一。 TValueListEditor ValueListEditor 是一個自定義的柵格組件,它使用TStrings保存鍵/值配對。它的工作方式類似於對象檢視器(Object Inspector)。 TComboBoxEx TComboBoxEx是一個新的組合框控件,它允許在列表文字的旁邊出現圖片。 TColorBox TcolorBox是一個新的組合框組件,用來選擇各種顏色。 改進的特性包括: 大多數窗口控件(WindowControl)都發布了以下Bevel相關屬性: BevelEdges BevelInner BevelOuter BevelKind BevelWidth 子組件(Subcomponents) 現在,組件可以擁有創建子組件的其他組件。舉例來說,一個組件可以有一個組件引用的屬性,這個被引用的組件,可以是內部的(也就是一個子組件),也可以是外部的(普通的組件引用)。如果引用的是內部的組件,則這個子組件的不被Form所擁有,而是被放置在Form上的組件所擁有。這意味着組件可以將其內部的子組件發布出來,並且能夠被正確的流化。並且,對象檢視器已經被修改為支持查看組件內部的子組件屬性(比如Font屬性)。要創建一個有子組件的組件,需要調用TComponent.SetSubComponent方法。 可發布的接口屬性(Publishable interface properties) 接口屬性(該屬性的類型是一個接口)現在已經可以被發布,當且僅當這個接口的實現的類是一個可以流化的組件。 這意味着現在你可以在對象檢視器中看到接口類型的屬性,並且將會出現一個支持此接口的組件列表以供選擇。 新增單元及變動 CheckLst.pas TcheckListBox增加了幾個新的屬性,包括AutoComplete,HeaderColor以及HeaderBackGroundColor。 Classes.pas TList有一個新的Assign方法,不僅完成拷貝功能,也支持一些簡單的集合操作。 TCollection新增兩個受保護的方法,用來允許派生的類對於增加和刪除條目的操作作進一步的處理。這兩個新方法是Added和Deleting,兩者都沒有缺省的實現。為了保持TCollection的精簡,沒有增加OnAdded和OnDeleting事件。然而,在派生類中卻很容易實現這些。此外,TCollection新增一個Owner屬性以便對擁有者進行標識。 TStringList新增屬性CaseSensitive(大小寫敏感),允許你控制子串列表的各項操作(排序,匹配)是否大小寫敏感。 TDataModule從Forms單元移到現在這個單元中(Classes.Pas),去處了對可視化控件的依賴。這使得你可以在不包含用戶界面的情況下寫出更小的服務段應用。 Thread新增FatalException屬性,以標識任何導致線程正常運行的異常。 TStream重載了Seek(搜索)函數,允許Int64類型的值來標識位置。派生的類可以覆蓋其中一個重載,但不能覆蓋所有。 TinterfacedPersistent是一個新的持久對象的基類,不是組件,但是可以實現接口。 ComCtrls.pas TtreeView的CreateTreeNodes方法是新增加的。 簡單的節點的創建,並且增加了一個事件,使得Tree的使用這不必為了要覆蓋節點的類而去重新創建一個派生類。並且AddNode也作了修改,讓你可以將你想要加入的節點(任何類型)傳遞給它。 增加一個OnAddition事件,該事件在節點被增加時觸發。 TreeView的排序Api作了增強(功能上)和簡化(使用上)。現在你可以對子樹進行遞歸排序,對頂層節點進行非遞歸的排序。TCustomTreeView和TTreeNode類現在對AlphaSort和CustomSort提供了一致的定義,並且這些方法同時被增加到TTreeNodes中。所有的改動都是后台的,與前一版本保持兼容。 增加MultiSelect(多選)相關四個屬性以及八個方法。 TListView新增了CreateListItems方法,該方法與TTreeView的CreateTreeNodes類似。 TStatusBar-可調整大小的夾子現在可以顯示,即使狀態欄的父親不直接是Form。只要狀態條的右下角處於Form的右下角位置,則該夾子顯示。 TDateTimePicker新增Format屬性,用於控制日期值的顯示方式。 THeaderControl新增許多新的屬性和事件以支持列的拖放。一個新屬性HotTrack允許當用戶的鼠標在頂部區域上停留時,該區域以高亮顯示。 TToolBar新增Menu屬性,可以自動在工具條上添加與Menu的菜單項對應的許多按鈕。當用戶使用定制對話框來定制工具條時,會有一系列的事件觸發。 Contnrs.pas Last(最后)和First(最先)兩個函數(屬性)被增加到TObjectList,TComponentList以及TClassList中。這些函數的返回值依類的不同而不同。 TStack(棧),TQueue(隊列),TObjectStack(對象棧)以及TObjectQueue(對象隊列)的Push現在改為一個函數,簡單的返回被推入到棧(或者隊列)中的對象。就像推入,然后查看一樣。當要推入在推入時剛創建的對象時,這一點非常有用(譯者注:其實這一點,Borland應該早就考慮到才是!)。 TBucketList和TObjectBucketList是簡單的哈希表。 Controls.pas TCustomListControl是一個新的公用基類,用於表達一組條目的列表控件(比如組合框,列表框和列表視圖等)。它引入了一些新的方法用於操縱將要被子孫類繼承的列表。 TDragObjectEx,TDragControlObjectEx以及TDragDockObjectEx是三個新的拖拽對象,拖拽操作結束后,它們可以自動釋放。他們對應於TDragObject,TDragControlObject和TDragDockObject,區別在於老的版本不能夠在拖放操作完成時自動釋放。 TControl新增兩個方法:ClientToParent和ParentToClient,用來在父親與子女之間換算坐標。工作方式與ClientToScreen和ScreenToClient類似。 TWinControl新增一個重載的方法PaintTo,參數改為Canvas(畫布)而非HDC(設備描述表句柄)。 TModalResult被移至Forms.pas中。此外,增加以下幾個支持函數: function IsPositiveResult(const AModalResult: TModalResult): Boolean; function IsNegativeResult(const AModalResult: TModalResult): Boolean; function IsAbortResult(const AModalResult: TModalResult): Boolean; function IsAnAllResult(const AModalResult: TModalResult): Boolean; function StripAllFromResult(const AModalResult: TModalResult): TModalResult; DbCtrls.pas TDBLookupListBox和TDBLookupComboBox新增NullValueKey屬性,允許用戶使用空值(Null)賦值。 TDBComboBox新增AutoComplete(自動完成)和AutoDropDown(自動下拉)屬性。 TDBListBox也新增AutoCompelete屬性。 TOpenDialog新增OptionsEx屬性(譯者注:該屬性用來設置是否出現win2000特有的位置工具條),同樣,保存對話框也新增此屬性。 ExtCtrls.pas TImage-Proportional(比例)屬性被增加,用於控制圖像的高寬比而不論圖像控件的尺寸如何。 Forms.pas TApplication(以及TApplicationEvents)新增OnSettingChange事件,用來通知系統設置的改變。 TForm新增AlphaBlend,AlphaBlendValue,TransparentColor以及TransparentColorValue等屬性以支持分層的Form。 TScreen提供了獲取桌面工作區大小的一系列屬性(WorkAreaRect,WorkAreaTop,WorkAreaLeft,WorkAreaHeight,WorkAreaWidth)。另外,還有一系列的新方法允許你定位哪個監視器更加與點,矩形,或者窗口相匹配。 TMonitor擴展了多監視器的支持,提供了當前的主監視器,WorkareaRect以及BoundsRect等屬性。 新增AutoDragDocking(自動停靠)支持。這一特性允許你關閉應用程序的自動停靠功能。另外,在Delphi的選項設置對話框中允許你修改這么一個標志。 TModalResult聲明被移到Control.pas單元中。 Graphics.pas 新增TFontRecall, TPenRecall 和 TBrushRecall三個新類,允許你快速存取font(字體),pen(畫筆)和brush(刷子)。他們均從TRecall(在Classes單元中聲明)派生而來,TRecall需要與TPersistent一起使用。 系統顏色經過排序便於查找。 在原先16種顏色的基礎上新增4個: clMoneyGreen clSkyBlue clCream clMedGray ImgList.pas Draw,DrawOverlay和GetIcon方法均被加上Overload(重載)標記,便於你覆蓋圖像列表的屬性設置。 IniFiles.pas Ini文件開始支持使用流讀寫二進制數據。 TMemIniFile支持控制子串是否大小寫敏感。 THashedStringList是一個新的TStrings的派生類,使用內部的哈希(雜湊)表提高訪問速度。 Masks.pas EditMask(掩碼編輯框)和文本使用自定義類型因此他們的屬性編輯器更加有用。 Menus.pas TMenuItem增加一個AutoCheck(自動標記)屬性,用來標記當用戶點及菜單條目時,是否自動在已經標記和未標記之間切換。 Registry.pas TRegistry開始支持使用流讀寫二進制數據。 StdCtrls.pas OnCloseUp和OnSelect事件被增加到TCustomComboBox中(TComboBox也一樣)。OnCloseUp事件在組何況的下拉列表關閉時觸發(與OnDropDown觸發的時機相反)。OnSelect在列表的東西被選中時觸發(或者當上下滾動可選值時使得組合框的內容被改變時)。組合框新增AutoCompelete屬性,缺省為True。 TListBox新增對兩個風格的屬性:lbVirtual和lbVirtualOwnerDraw。兩個風格用於支持虛的列表框,即不保存任何條目。通過設置Count屬性可以指定條目的個數,然后在OnData,OnDataFind,和OnDataObject事件中提供條目(以及相關的對象)。 TypInfo.pas 現在調用對象的GetPropInfo方法是安全的了。假如對象沒有任何RTTI信息,則簡單的返回nil。 增加FreeAndNilProperties。它將釋放(free)並且置空(nil)支持RTTI的對象的所有對象屬性。注意它將對所有的對象,包括引用的對象進行此項操作,所以最好先將被引用的對象釋放,置空。