今天參加了高雄場次的FireMonkey+Live Databindings技術研討會(2011/11/24)
由李維老師主講,講的生動有趣,其中有幾個topic是讓我驚訝到嘴巴都忘了合起來,功能超強,所以趁著今天會中抄的一些片段筆記搭配記憶趕快寫下。
若是有哪些重點是有需要加強及補充或不正確的,請網友不吝告知,定會確認後修正。
- Firemonkey(簡稱FMX)是Delphi XE2裡新的Framework,對照舊的Framework為VCL。
- 以前windows程式,畫面上一堆button,功能表,很複雜,使用人員不敢表達不好用,開發人員說了就算,現在由jobs旋風帶動user experience後,使用者的使用習慣,情境,
iOS領銜的UI介面(也可說是jobs 的極簡風)變成是王道。
- 以前delphi一年一個update或版本,現在embarcadero公司透漏可能一季就會有一個update或版本,節奏變快希望大家要跟上。
- Firemonkey與VCL本質上的差異
VCL:
很多視覺性元件多數核心是呼叫windows 元件(TWinControl)的做法,靠message方式傳遞。
優點:速度快,compile出來執行檔小、缺點:外觀較無法變化。
Firemonkey:
很多視覺性元件自行製作,不靠windows,而是靠該公司自行實作的TStyledControl,傳遞訊息的方式使利用物件導向父類別定義的virtual方式,讓子元件繼承後自行實作訊息的使用方式。
缺點:執行速度比VCL(使用傳遞message方式)慢,
但靠支援GPU方式彌補,不差於VCL。
compiler後執行檔較大(因使用virtual實作方式程式碼
較多)。
優點:可製作3D視覺程式及之前無法微調某些外觀之程式,
(如TGroup control,四邊型的邊線可以只顯示一邊)
,因不使用TWinControl 故製作出跨平台軟體….等。
Firemonkey與VCL都相同繼承於下面的物件,之後就個自有一片天了
TObject <-----Root
TPersistent
TComponent
- 目前XE2內VCL與FireMonkey都可以使用,但基本上當您要實作時是切開的,可透過將FireMonkey製作成DLL方式給VCL APP呼叫。
- FireMonkey 的所有物件都可以做Parent Child的關係,VCL則無法所有元件做Parent Child,這樣的結果就是做出來的視覺元件比VCL多樣性。(例如在TPanel內再鑲入一個Form)
- FireMonkey 與VCL元件 property方面很淺顯的差異:
物件中的caption改為Text(Except for TFrom)。
Left,Top屬性改為position.X,position.Y,position.Z
- VCL中很多畫圖的屬性值只有支援到integer,FMX支援到Floating-point,可畫出更細緻的圖形軌跡。
- FMX透過Binding name連結兩個元件互動,物件想複製其他物件的style可透過的stylelookup屬性內可貼上別的物件style達成。
- LiveBinding 是FireMonkey 倚賴與外界資料(庫)連結的一種技術,VCL也可以使用。
- Expression Engine是LiveBinding 一項很重要的功能,透過LiveBinding建置scope連結目標,能夠動態的設定資料庫欄位執行運算公式,將答案傳遞給指定的元件屬性內(跟以前將計算公式寫死在程式中不同,讓我震驚的一項功能)。
- 假設一個Edit1.text要設定給Edit2.text,若是以LiveBinding來實作,簡單說可由一個BindList元件設定
SourceComponent=Edit1
SourceExpression=Text
ControlComponent=Edit2
ControlExpression=Text
Manager Field打勾(表示程式一執行,就自動執行將edit2.text 傳給 edit1.text)。
- 有了LiveBinding不再需要TDBGRID,TDBEDIT…等專門為DB設計的元件,只需一般TGRID,TEDIT與DB欄位互動即可。
- 已有特異人士寫出將VCL轉為Firemonkey code的converter
http://midafiremonkey.wordpress.com/
- 會後詢問李維老師若是PC上已有delphi 6再安裝XE2,會不會影響原有專案的運行,老師的回答是不會,會找個時間試試看的。
文章標籤
全站熱搜

您好! 我是一個Delphi6的資深用戶, 不是技術很厲害的那種, 但確實是拿來在工作上用來開發AP,解決公司跟部門IT需求! 我工作上的績效跟表現跟它息息相關, 我很感謝它的存在. 但這些年來,一直困擾我的問題是:"Delphi,還有未來嗎?", 有試著學過JAVA、.NET, 甚至PHP我也試著買書來看; 但不曉得是中Delphi之毒太深還是怎樣,就覺得學其他的工具學不太起來..也覺得其他的語言或工具比不上Delphi好用,..所以, 雖然仍然在用Delphi開發程式、也東看西買一些其他工具的書來研究 ; 也留心著Delphi到底有什麼發展? 您, 覺得Delphi接下來, 能旺得起來嗎?
"Delphi,還有未來嗎?" ==>剛剛我用「delphi +未來」在google 可以搜尋到很多的文章在討論這件事(由2004~2010...等),我想褒貶都有,但就XE2 firemonkey的出現,我想這應該就是讓很多delphi老手看到未來的一個願景了,原因我想我這邊文章都有記錄著李維老師說的一些優勢,也就是IOS APP 跨平台的支援,而且原有的VCL也還在所以進可攻退可守,沒道理覺到有沒落的感覺。 再說delphi與vb是同一世代,到了java .net的web世代,其實架構根本就不一樣,但除非windows有衰敗的現象,不然很多公司的一些工具程式,DLL,都還是delphi守住最後一片江山的,這是世代交替不可避免的現象,但像我們公司雖然web是主架構,但不可避免的要跟windows 合作的時候,delphi開發出來的程式仍是很穩定的一個小小螺絲釘,雖小但不可缺少他。 講到這裡,我想未來的事很難說,若還想朝資訊的路走,我的建議是網頁架構仍是目前主流(若公司有相關的計畫可以參與進行,會學得更快),多多少少了解其架構對你資訊的養分是大大加分的,我在這裡就不討論到底是要學java .net php roby...等。 不知道這樣的回答對您有沒有幫助。
TKS!! (ps. 我是 #1 訪客 於 2012/01/13 14:02) 當然對我有幫助, 如果沒有外力(例如公司的專案), 想換工具真的是難上加難, 會把握機會多學學WEB上的運用, 謝謝!!