Установка шрифта управления Firemonkey программно в Stack Overflow

У меня есть пользовательский элемент управления Firemonkey, который расширяет TEdit который динамически создается на форме. Я пытаюсь установить размер шрифта, когда он создается с помощью:

Search->Font->Size = 15;

Тем не менее, шрифт остается неизменным на элементе управления.

У меня есть еще один элемент управления того же типа, который уже находится в форме, который я могу изменить программно размером шрифта. Я заметил с этим контролем, что если Size настройка имеет значение false в StyledSettings свойства я могу изменить шрифт, тогда как если Size Значение true, я не могу изменить размер шрифта.

Поэтому, когда я создаю свой пользовательский элемент управления, я пытаюсь программно установить Size свойство ложно, однако я не могу понять, как это сделать.

Я пытался:

Search->StyledSettings.Size = false;

а также

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

ни один из которых даже не скомпилируется. Как я могу убедиться, что это свойство удалено из моего пользовательского элемента управления во время выполнения? Или есть другой способ, которым я должен установить его шрифт?

0

Решение

Тем не менее, шрифт остается неизменным на элементе управления.

У меня есть еще один элемент управления того же типа, который уже находится в форме, который я могу изменить программно размером шрифта. С этим элементом управления я заметил, что если для параметра «Размер» задано значение «false» в свойствах StyledSettings, я могу изменить шрифт, а если для параметра «Размер» задано значение «истина», я не могу изменить размер шрифта.

Это документированное поведение:

Использование свойства StyledSettings

При изменении свойств представления текста объектов типа TTextSettings помните, что при изменении значения свойства (свойства TextSettings.Font.Size в предыдущем примере) фактическое изменение представления объекта происходит только в том случае, если ITextSettings Свойство .StyledSettings не содержит константу TStyledSetting.Size. «Связь между константами TStyledSetting и свойствами TTextSettingsmsgstr «таблица показывает, какие константы TStyledSetting управляют обработкой свойств текстового представления TTextSettings.

FMX.Graphics.ITextSettings

Помните, что при изменении значения свойства (например, свойства TextSettings.FontColor) фактическое изменение представления элемента управления происходит только в том случае, если свойство StyledSettings не содержит константу TStyledSetting.FontColor. В следующей таблице показано, какие константы TStyledSetting управляют обработкой каких свойств представления текста TTextSettings.

Связь между константами TStyledSetting и свойствами TTextSettings

TStyledSetting Зависимый TTextSettings Значение
Постоянные свойства

Семейство TFont.Family Название шрифта.
Размер TFont.Size Размер шрифта.
Стиль TFont.Style Стиль шрифта (курсив, полужирный).
FontColor FontColor Цвет шрифта.
Другое HorzAlign, VertAlign, Как выровнять и показать текст.
Обрезка и WordWrap.

Поэтому, когда я создаю свой пользовательский элемент управления, я пытаюсь программно установить для свойства Size значение false, однако я не могу понять, как это сделать.

Правильный синтаксис в C ++:

Search->StyledSettings = Search->StyledSettings >> TStyledSetting::Size;
2

Другие решения