0

我有一个扩展的自定义 Firemonkey 控件,TEdit它是在表单上动态创建的。我试图在创建它时设置它的字体大小:

Search->Font->Size = 15;

但是,控件上的字体保持不变。

我有另一个相同类型的控件,它已经在表单上,​​我可以通过编程方式更改字体大小。我注意到这个控件,如果Size在属性中设置为 false,StyledSettings我可以更改字体,而如果Size设置为 true,我无法更改字体大小。

所以,当我创建我的自定义控件时,我试图以编程方式将Size属性设置为 false,但是我不知道该怎么做。

我试过了:

Search->StyledSettings.Size = false;

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

两者都不会编译。如何确保在运行时在我的自定义控件上删除此属性?还是有另一种方法我应该设置它的字体?

4

1 回答 1

3

但是,控件上的字体保持不变。

我有另一个相同类型的控件,它已经在表单上,​​我可以通过编程方式更改字体大小。我注意到这个控件,如果在 StyledSettings 属性中将 Size 设置设置为 false,我可以更改字体,而如果 Size 设置设置为 true,我将无法更改字体大小。

这是记录在案的行为:

使用 StyledSettings 属性

更改 TTextSettings 类型对象的文本表示属性时,请记住,当您更改属性的值(上例中的 TextSettings.Font.Size 属性)时,对象视图的实际更改仅发生在 ITextSettings .StyledSettings 属性不包含 TStyledSetting.Size 常量。TStyledSetting 常量和 TTextSettings 属性之间的关系”表显示了哪些 TStyledSetting 常量控制 TTextSettings 文本表示属性的处理。

FMX.Graphics.ITextSettings

请记住,当您更改属性(例如 TextSettings.FontColor 属性)的值时,控件视图的实际更改仅在 StyledSettings 属性不包含 TStyledSetting.FontColor 常量时发生。下表显示了哪些 TStyledSetting 常量控制对哪些 TTextSettings 文本表示属性的处理。

TStyledSetting 常量和 TTextSettings 属性之间的关系

TStyledSetting 依赖 TTextSettings 含义
   常量属性

Family TFont.Family 字体名称。
大小 TFont.Size 字体大小。
Style TFont.Style 字体样式(斜体、粗体)。
FontColor FontColor 字体颜色。
其他 HorzAlign, VertAlign, 如何对齐和显示文本。  
                 修剪和自动换行。

所以,当我创建我的自定义控件时,我试图以编程方式将 Size 属性设置为 false,但是我不知道该怎么做。

C++ 中的正确语法是:

Search->StyledSettings = Search->StyledSettings >> TStyledSetting::Size;
于 2015-06-12T21:39:07.117 回答