【发布时间】:2014-04-15 06:59:02
【问题描述】:
我需要以一种形式更改 50 个按钮的颜色。 每个按钮另一种颜色和颜色要通过代码设置(没有设计编辑器)。
它是firemonkey移动应用程序。
【问题讨论】:
-
是什么让你不这样做,你的问题是什么?到目前为止,您尝试过什么?
标签: delphi button colors firemonkey
我需要以一种形式更改 50 个按钮的颜色。 每个按钮另一种颜色和颜色要通过代码设置(没有设计编辑器)。
它是firemonkey移动应用程序。
【问题讨论】:
标签: delphi button colors firemonkey
在我看来,如果不制作自己的不完全使用 FMX 样式的按钮(如果您希望使用其原生样式支持多个平台,这会破坏多平台兼容性),您可以在每个按钮的顶部应用一些过滤器在这些按钮中,但在某些样式上,这可能会导致文本不可见,实现您自己的过滤器可能会获得所需的结果:
Effect:=TFillRGBEffect.Create(Self);
Effect.Color:=$80FF0000;
Effect.Parent:=SomeButton;
另一种方法是利用TColorButton 和TText 在它上面,但是这样整个按钮不会被你的颜色填充,但是你可以修改每个平台的默认/自定义样式为了得到你需要的东西(这确实需要在设计器中完成,但你必须为需要支持的每个平台创建一种样式,而不是为每个按钮创建 50 个样式):
Button:=TColorButton.Create(Self);
Button.Color:=$80FF0000;
Text:=TText.Create(Button);
Text.Parent:=Button;
Text.Align:=TAlignLayout.alClient;
Text.Text:='Hello';
Text.HitTest:=false;
Button.ClipChildren:=true;
Button.Parent:=Self;
【讨论】: