如何設計並使用FireMonkeyStyle設計
FireMonkey使用Style來控制控件的顯示方式。blog
每一個控件都有一個StyleLookup屬性,FireMonkey就是經過控件的這個屬性來在當前窗體的StyleBook控件中查找匹配的Style,若是找到了這個Style,那麼控件就使用這個Style來顯示。it
StyleBook是一個Style的集合,裏面能夠有窗體的Style,按鈕的Style,文本框的Style,等等。每一個Style其實就是一個控件,像經常使用到的TLayout,TRectangle等等,只是這個控件須要設置它的StyleName。原理
好比我在StyleBook中設計這樣一個按鈕:List
l Layout:TLayout(StyleName設置爲「defaultbutton」)遍歷
n Rectangle:TRectangle(用來顯示按鈕背景)im
u Text:TLabel(用來顯示按鈕標題)db
那麼這個Layout就表示了一個名爲「defaultbutton」的Style。若是這時候,窗體上放一個Button,而後將它的StyleLookup屬性爲「defaultbutton」,FireMonkey就會從當前窗體的StyleBook中遍歷咱們設計的全部控件,查找StyleName爲Button的StyleLookup屬性值的控件,也就是StyleName爲「defaultbutton」的控件,就是咱們剛纔設計的Layout控件,查找到了以後,就返回一個Layout的克隆,也就是複製一個Layout(它的子控件也會複製進去),而後在Button上顯示出來。img
原理就講這些了,下面我用舉個例子來演示一下這些步驟:集合
這個例子是在TListBoxItm控件上使用咱們設計的Style,
設置ListBox1的Align屬性爲alClient,
並右擊ListBox1,在彈出的菜單中選中Items Editor…
點擊Add Item按鈕,會在ListBox1上面添加一個TListBoxItem,
這時候結構視圖顯示以下:
在屬性查看器中設置Layout的StyleName爲defaultitemstyle:
而後咱們在Layout下添加一個TRectangle作爲背景:
將這個Rectangle的顏色設置爲紅色,也就是將它的Fill.Color設置爲Red,並將Rectangle的Layout屬性設置爲alClient:
看,這個ListBoxItem已經顯示成咱們設計的Style了(一個紅色的矩形):