我有一个自定义的Firemonkey控件,它扩展了在表单上动态创建的TEdit
。我正在尝试使用以下方法设置它的字体大小:
Search->Font->Size = 15;
但是,控件上的字体保持不变。
我有另一个已经在表单上的相同类型的控件,我可以通过编程方式更改字体大小。我注意到使用此控件,如果Size
属性中StyledSettings
设置为false,我可以更改字体,而如果Size
设置设置为true,则无法更改字体大小。
因此,当我创建自定义控件时,我尝试以编程方式将Size
属性设置为false,但是我无法弄清楚如何执行此操作。
我试过了:
Search->StyledSettings.Size = false;
和
Search->StyledSettings = ListBox->StyledSettings - [TStyledSetting.ssSize];
它们都不会编译。如何在运行时确保在我的自定义控件上删除此属性?或者我还有另一种设置字体的方法吗?
答案 0 :(得分:2)
但是,控件上的字体保持不变。
我有另一个已经在表单上的相同类型的控件,我可以通过编程方式更改字体大小。我注意到使用此控件,如果在StyledSettings属性中将Size设置设置为false,我可以更改字体,而如果Size设置设置为true,则无法更改字体大小。
这是记录在案的行为:
Using the StyledSettings Property
更改TTextSettings类型对象的文本表示属性时,请记住在更改属性值时(前一个示例中的TextSettings.Font.Size属性),则实际更改对象的仅当ITextSettings.StyledSettings属性不包含TStyledSetting.Size常量时才会发生视图。“Relation between TStyledSetting constants and TTextSettings properties”表显示哪些TStyledSetting常量控制TTextSettings文本表示属性的处理。
请记住,当您更改属性的值(例如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.
因此,当我创建自定义控件时,我尝试以编程方式将Size属性设置为false,但是我无法弄清楚如何执行此操作。
C ++中的正确语法是:
Search->StyledSettings = Search->StyledSettings >> TStyledSetting::Size;