我正在尝试创建一个虚拟键盘,其中每个按钮都有一个数字和几个字母。例如,数字2
旁边的文字ABC
也会以较小的字体大小显示,而3
旁边的数字DEF
旁边会有TText
。< / p>
我可以逐个成功编辑这些按钮的自定义样式。一个按钮,我可以删除一个ABC
样式元素,更改每个元素的对齐方式和文本设置,它工作正常......
但是,我必须逐个完成,自定义每个按钮的样式。如果我尝试重复使用此样式,则所有键上的额外字母<img src="image.png" (load)="dosomething($event)" />
将相同。但我需要他们各自不同。
如何制作一个可重复使用的样式,这也可以让我在每个按钮中使用不同的子文本?或者我是否必须为每个按钮创建一个独特的样式?
答案 0 :(得分:6)
您可以执行一种解决方法,将ABC Label的文本StyleName
设置为文本,将数字标签的StyleName设置为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;
现在设置所有按钮的样式。 Text属性将设置文本字母数字文本,标签将设置Number。它只能在运行时工作。