Firemonkey TButton стиль с двумя разными текстами
Я пытаюсь создать виртуальную клавиатуру, где каждая кнопка имеет как цифру, так и несколько букв. Например, число 2
также будет иметь текст ABC
рядом с ним, в меньшем размере шрифта, и номер 3
буду иметь DEF
рядом с ним.
Я могу успешно редактировать пользовательский стиль этих кнопок одну за другой. Одной кнопкой я могу уронить TText
Элемент стиля, изменить настройки выравнивания и текста каждого, и он работает нормально...
Тем не менее, я должен сделать это один за другим, настраивая стиль каждой кнопки отдельно. Если я попытаюсь повторно использовать этот стиль, дополнительные буквы ABC
будет одинаковым на всех клавишах. Но мне нужно, чтобы они были разными.
Как я могу создать единый стиль многократного использования, который также позволит мне использовать различный подтекст в каждой кнопке? Или мне придется создавать уникальный стиль для каждой кнопки?
1 ответ
Вы можете сделать обходной путь, установить текст StyleName
ABC Label для текста и StyleName для номера Label для номера.
Создайте класс, который переопределяет класс кнопки.
TButton = class(FMX.StdCtrls.TButton)
protected
procedure ApplyStyle; override;
end;
procedure TButton.ApplyStyle;
var NumberLabel : TLabel;
begin
//That method will find for a label with stylename number and set the tag of component in it.
inherited;
if FindStyleResource<TLabel>('Number', NumberLabel) then
NumberLabel.Text := IntToStr(Tag);
end;
Теперь установите стиль для всех кнопок. Свойство text устанавливает текст, алфавитно-цифровой текст, а тег - Number. Это будет работать только во время выполнения.