基於FireMonkey的程序開發與VCL確實有些不同,很多屬性發生了變化,尤其是外觀方面。
1、Margins、Padding、Position
Margins:指定了當前控件在父控件(Parent)上的邊界范圍
Padding:指定了當前控件容納的子控件(children)的位置范圍
Position:指定了當前控件在父控件上的位置
如下圖:
2、Position
Position除了定義位置以外,還可以定義控件在父控件上的移動方式,如針對縱坐標(Y)創建一個新的動畫:
TFlatAnimation:將一個數字屬性(如坐標X,Y,也可以是延遲時間(Delay)等可以發生變化的數字屬性)。該對象的屬性如下表:
AnimationType :TAnimationType = (atIn, atOut, atInOut);
數值在變化過程中,可以根據插值算法類型InterpolationType:TInterpolationType進行變化,比如按照二次方程式(itQuadratic)進行變化,當AnimationType =atIn時,起點附近變化緩慢,atOut是指終點變化緩慢,atInOut指2頭變化緩慢。
AutoReverse:Boolean 是否倒退,如果true則移動后會返回原來的位置
Delay:Single 延時(秒),由於是一個數值型,同樣可以通過TFlatAnimation進行設置
Duration: Single 變化持續時間(秒),即從開始到結束所花費的時間
Enabled:Boolean 啟動變化過程
InterpolationType:TInterpolationType 插值算法類型
Inverse:Boolean 是否反向變化,如果是true,則原定義是由小變大,則變成由大變小
Loop: Boolean 是否循環變化
PropertyName 變化的屬性名稱
StartFromCurrent : Boolean 是否從當前數值開始變化
StartValue: Single 變化開始值
StopValue: Single 變化結束值
Trigger: TTrigger 當控件的某個事件發生時觸發
TriggerInverse: TTrigger 當控件某個事件發生時,觸發反向變化
TFloatKeyAnimation 與TFlatAnimation的區別在於不是設置起點和終點,而是設置變化過程中的關鍵點。在實際使用時,發行TKeys下每一個Key只能是0或1,並且0代表起點,1代表終點,其數值規律沒有看出來。