Firemonkey TButton风格有两种不同的文本

Jer*_*dge 3 delphi button firemonkey firemonkey-style

我正在尝试创建一个虚拟键盘,每个按钮都有一个数字和几个字母.例如,数量2也将有文字ABC旁边,用较小的字体大小和数量3都会有DEF它旁边.

我可以逐个成功编辑这些按钮的自定义样式.一个按钮,我可以删除一个TText样式元素,更改每个的对齐和文本设置,它工作正常...

设计按钮样式

但是,我必须逐个完成,自定义每个按钮的样式.如果我尝试重复使用此样式,则ABC所有键上的额外字母将相同.但我需要他们各自不同.

键盘在运行时的示例

如何制作一个可重复使用的样式,这也可以让我在每个按钮中使用不同的子文本?或者我是否必须为每个按钮创建一个独特的风格?

Koh*_*ull 6

您可以执行一种解决方法,将StyleNameABC Label的文本设置为文本,将Number Label的NumberName设置为Number.

创建一个覆盖按钮类的类.

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;
Run Code Online (Sandbox Code Playgroud)

现在设置所有按钮的样式.Text属性将设置文本字母数字文本,标签将设置Number.它只能在运行时使用.