我需要在一种形式中更改50个按钮的颜色。 每个按钮都需要通过代码设置另一种颜色和颜色(没有设计编辑器)。
这是firemonkey移动应用程序。
答案 0 :(得分:2)
根据我的观点,如果您没有自己完全使用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;