【问题标题】:Firemonkey TButton style with two different texts带有两种不同文本的 Firemonkey TButton 样式
【发布时间】:2017-04-25 16:38:43
【问题描述】:

我正在尝试创建一个虚拟键盘,其中每个按钮都有一个数字和几个字母。例如,数字2 旁边也会有文字ABC,字体较小,而数字3 旁边也会有DEF

我可以成功地一一编辑这些按钮的自定义样式。一个按钮,我可以拖放一个TText 样式元素,更改每个元素的对齐方式和文本设置,效果很好……

但是,我必须一个一个地做这个,自己定制每个按钮的样式。如果我尝试重新使用这种风格,额外的字母ABC 在所有键上都将是相同的。但我需要它们各不相同。

如何制作一个可重复使用的样式,同时还允许我在每个按钮中使用不同的子文本?还是我必须为每个按钮创建一个独特的样式?

【问题讨论】:

  • 我不得不做一些类似的事情,最后我为每个人创建了一个自定义样式。不是最好的主意,但它有效

标签: delphi button firemonkey firemonkey-style


【解决方案1】:

您可以做一个变通方法,将 ABC 标签的文本 StyleName 设置为文本,将数字标签的 StyleName 设置为数字。

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

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 属性将设置文本字母数字文本,标签将设置数字。它只能在运行时工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-24
    • 2017-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多