快樂的生活工作

今天參加了高雄場次的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,會不會影響原有專案的運行,老師的回答是不會,會找個時間試試看的。
文章標籤
創作者介紹
創作者 味味A 的頭像
味味A

味味A

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


留言列表 (3)

發表留言
  • 訪客
  • 您好!
      我是一個Delphi6的資深用戶, 不是技術很厲害的那種, 但確實是拿來在工作上用來開發AP,解決公司跟部門IT需求! 我工作上的績效跟表現跟它息息相關, 我很感謝它的存在.
      但這些年來,一直困擾我的問題是:"Delphi,還有未來嗎?", 有試著學過JAVA、.NET, 甚至PHP我也試著買書來看; 但不曉得是中Delphi之毒太深還是怎樣,就覺得學其他的工具學不太起來..也覺得其他的語言或工具比不上Delphi好用,..所以, 雖然仍然在用Delphi開發程式、也東看西買一些其他工具的書來研究 ; 也留心著Delphi到底有什麼發展?
    您, 覺得Delphi接下來, 能旺得起來嗎?
  • freetoad
  • "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上的運用,
    謝謝!!