在2011年,C++Builder推出了 XE2版。相較於前一版,該套軟體的改變幅度不小,而最受矚目的部分,是加入了全新的應用程式框架FireMonkey。

使用FireMonkey框架能同時編譯Windows及Mac OS應用程式

FireMonkey的特色在於程式開發人員只需撰寫一套程式碼,便可編譯出能夠在Windows及Mac OS二個平臺上執行的應用軟體。在C++Builder操作介面右方的File欄位中,有1個Target Platforms選項,該選項可讓你選擇將程式碼編譯成Win32或OS X的程式,我們也實際測試,在Mac OS平臺上的確能正常執行程式。可惜的是,目前這套工具尚未支援編譯64位元程式。

另外,FireMonkey也加強了圖形方面的應用並支援GPU運算,除了能設計出HD品質的使用者介面,也能夠繪出3D圖像並作出動畫效果。由於FireMonkey是採用向量圖形,因此即使放大或縮小圖形也不會失真。

雖然FireMonkey有上述的幾項優點,但由於是全新框架,因此有許多的元件都是XE2版才新增的,例如,TBufferLayer3D、TCamera、TGrid3D等,所以使用者必須重新學習如何使用新的框架。

另外,即使是原有的元件,在屬性及事件上也有一些不同,例如我們要改變Button的名稱,原本是在Caption屬性上設定,在這版卻變成Text屬性。而Form元件也取消了OnClick與OnDblClick事件。所以,即便是使用C++Builder的老手,要使用這套開發工具,也需要花一些時間來適應。

利用FireMonkey,即能輕鬆製作3D動畫程式

C++Builder所強調的3D應用程式開發功能,我們也寫了1支小程式進行測試。

這個程式的功能需求是,在欄位中隨意輸入文字,按下按鈕後,文字就會新增至我們放置的ListBox中,在執行的同時,程式還會不停的360度左右旋轉。

我們首先在C++Builder中新增FiereMonkey 3D的檔案,並且在開啟的表單中置入1個Layer3D元件,以便讓我們能夠在這之中,新增屬於2D元件的Edit、Button及ListBox,接著撰寫按下按鈕後,讓Edit中的文字能新增到ListBox的程式碼。而為了讓程式有動畫的效果,我們必須新增FloatAnimation元件,而且要在Layer3D之下新增,否則對Layer3D沒有作用。在FloatAnimation屬性欄位中,我們設定了該物件以Y軸進行360度旋轉,而且每一次旋轉間隔時間為6秒,到此這個程式就完成了。

在測試的過程中,雖然元件的屬性欄位配置與以往版本有些不同,但稍加摸索還是能夠上手,而對於製作3D動畫效果,FireMonkey的確提供了很方便的操作模式。以往要做到這類的應用,可能要撰寫許多的程式碼才能達成。而在C++Builder中,卻只要加入幾個3D元件,更改一下屬性值,就能夠做到。

在C++ Builder上開啟新檔案時,若選擇了HD模式,那麼只能在上面編輯2D元件。相對的,3D模式也一樣。但一定會碰到必須在3D模式下編輯2D元件的情況,對此,C++Builder有變通的做法。那就是提供Viewport 3D與Layer3D二個元件,在HD模式下放置Viewport3D,就能在其中編輯3D元件,而Layer3D則是讓3D模式能夠置入2D元件。

可用Live Data Binding,達到動態資料連結

而C++Builder XE2的另一個主要的功能,便是新增了Live Data Binding(即時資料連結)技術,由於VCL(Visual Component Library)──由Borland公司所發展出來的視覺化元件程式庫。只能開發在Windows 平臺上執行的應用程式,而想開發跨平臺的程式,就必須使用FireMonkey,然而該框架有許多的元件都是動態產生。

於是為了能達到動態資料連結的能力,原廠便發展出Live Data Binding技術,這項功能與ASP.NET中的Live Binding技術類似,在ASP.NET中,Live Binding可以連接任2個物件,包括資料庫和按鈕元件等,當資料來源變動時,用戶端也會即時更新訊息。

Live Data Binding除了能動態連結資料庫之外,也能連結其他格式化的資料來源,例如XML、JSON(1種資料交換語言)等,當然也能連接另一個元件。雖然該技術是為了支援FireMonkey而開發,但也可以在VCL框架上使用。

對於C++Builder的Live Data Binding技術,我們也實作了簡單的程式進行測試,一開始先新增FireMonkey HD檔案,然後置入了2個Label、2個Edit及1個Button等元件,系統預設是以Label1、Label2來命名,以此類推。

這個程式要做的是,讓Label1物件能動態顯示Edit1元件的名稱及類別名稱,Label2亦然。而在Edit2元件中輸入文字並按下Button1時,Edit1會顯示Edit2元件名稱及剛才輸入的內容。

為了能夠達到此效果,我們可以使用C++Builder 所提供的TBindingsList元件編輯器,這個編輯器中有個名為TBindExpression的類別,該類別主要的功能就是能連接任2個元件,並動態顯示元件資訊,只需在此類別的屬性欄位中,設定好來源控制項及目的控制項等,就能達成所需效果,如果想做到更進階的應用,例如自動即時更新來源資料,還是得透過撰寫函式。

透過上述的範例程式,可得知Live Data Binding的確能夠透過即時資料連結的功能,連接任二個元件。這對於需開發即時呈現資訊的應用程式而言,提供了不小的幫助。

整體而言,C++Builder在新的版本中,有了不小的進步,尤其是FireMonkey技術,能夠讓開發者在不變更程式碼的情況下,編譯出可同時在Windows及Mac 平臺上執行的應用程式。

能夠存取Amazon跟Windows Azure的雲端服務

在C++Builder XE2中,還新增了Cloud Framework功能及Datasnap Mobile Connector技術,而且,前者是封裝了Amazon跟Microsoft Windows Azure的API成為VCL元件。因此,開發人員只要利用這些元件,便可使用Amazon跟Microsoft的雲端服務;後者則是可以產生手機的原生程式,例如,Android能夠產生Java的DataSnap客戶端程式碼,iPhone則可以產生Objective-C DataSnap客戶端程式碼,這些程式碼使用JSON/REST技術和DataSnap Server溝通以存取資料,因此使用者能夠藉此技術開發行動應用程式。

同時,C++Builder XE2也加強了各元件間的上下層關係。假設,我們在表單中新增了一個Edit元件,接著在這個元件之下,也能再新增其他的元件如Button。如果改變了Edit的屬性,也會同時影響到Button,例如,移動Edit的位置,那麼Button也會跟著移動,相反的,我們如果改變下層元件的屬性,上層並不會被影響。這麼做的好處是讓使用者能夠利用該功能,自行設計需要的元件。

 

可同時編譯Mac OS X應用程式

在Project Manager視窗的Target Platforms選項中,開發者能夠選擇要編譯為何種平臺的應用程式。

 

FireMonkey能輕鬆製作3D動畫

以往要做出3D動畫效果,要撰寫許多程式碼才能達成,但現在只要利用FireMonkey的3D元件,就能快速製造出3D動畫效果。

 


產品資訊 建議售價●專業版37800元 原廠●Embarcadero 代理商●捷康科技 電話●(02)2365-0238 網址●www. Embarcadero.com 代理商網址●www.qcomgroup.com.tw 處理器需求●Intel x86 1.6GHz以上處理器 記憶體需求●1GB 以上 硬碟需求●3GB以上 作業系統需求●Windows XP Professional以後版本
 

【註:規格與價格由廠商提供,因時有異動,正確資訊請洽廠商。】

熱門新聞

Advertisement