2015-06-12 56 views
0

我有一個自定義的Firemonkey控件,它擴展了在表單上動態創建的TEdit。我試圖設置它的字體大小創建時使用:在C++中以編程方式設置Firemonkey控件字體

Search->Font->Size = 15; 

但是,控件上的字體保持不變。

我有另一個控件的相同類型已經在窗體上,我可以以編程方式更改字體大小。我注意到這個控制,如果Size設置爲假的StyledSettings性能我可以更改字體,而如果Size設置爲真,我不能改變字體大小。

所以,當我創建自定義控件時,我試圖以編程方式將Size屬性設置爲false,但我無法弄清楚如何實現。

我曾嘗試:

Search->StyledSettings.Size = false; 

Search->StyledSettings = ListBox->StyledSettings - [TStyledSetting.ssSize]; 

均未甚至會編譯。我如何確保在運行時我的自定義控件上刪除了此屬性?或者還有另一種方法我應該設置它的字體?

回答

1

但是,控件上的字體保持不變。

我有另一個控件的相同類型已經在窗體上,我可以以編程方式更改字體大小。我注意到這個控件,如果Size設置在StyledSettings屬性中設置爲false,我可以改變字體,而如果Size設置爲true,我不能改變字體大小。

這是記錄的行爲:

Using the StyledSettings Property

當改變TTextSettings類型對象的文本表示性能,記住,當你正在改變TextSettings的財產(價值。前一個示例中的Font.Size屬性),則只有在ITextSettings.StyledSettings屬性不包含TStyledSetting.Size常量時,纔會發生對象視圖的實際更改。Relation between TStyledSetting constants and TTextSettings properties」表顯示哪些TStyledSetting常量控制TTextSettings文本表示屬性的處理。

FMX.Graphics.ITextSettings

請記住,當你改變一個屬性(例如TextSettings.FontColor屬性)的值,則控制的視圖的實際變化只發生,如果StyledSettings屬性的作用不包含TStyledSetting.FontColor常量。 下表顯示了哪些TStyledSetting常量控制哪些TTextSettings文本表示屬性的處理。

TStyledSetting常數和TTextSettings性能

 
TStyledSetting Dependent TTextSettings Meaning 
    Constant    Properties 

Family   TFont.Family    Font name. 
Size    TFont.Size    Font size. 
Style   TFont.Style    Font style (italic, bold). 
FontColor  FontColor     Font color. 
Other   HorzAlign, VertAlign,  How to align and show the text. 
       Trimming, and WordWrap. 

這樣的關係,當我創建我的自定義控制,我想以編程方式設置大小屬性設置爲false,但是我無法弄清楚如何去做。

在C++中正確的語法是:

Search->StyledSettings = Search->StyledSettings >> TStyledSetting::Size; 
相關問題