今天參加了高雄場次的FireMonkey+Live Databindings技術研討會(2011/11/24)images

由李維老師主講,講的生動有趣,其中有幾個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欄位互動即可。

 

 

  • 會後詢問李維老師若是PC上已有delphi 6再安裝XE2,會不會影響原有專案的運行,老師的回答是不會,會找個時間試試看的。
arrow
arrow

    味味A 發表在 痞客邦 留言(3) 人氣()