gpt4 book ai didi

delphi - 如何更改FM TSpeedButton的颜色

转载 作者:行者123 更新时间:2023-12-03 18:27:17 26 4
gpt4 key购买 nike

我的应用程序有几个TSpeedButtons可以选择一种颜色,我希望每个选择都由TSpeedButton的颜色显示。

我在Stackoverflow上找到有关如何更改TButton颜色的this answer。第二个答案(动态更改颜色)似乎是我正在寻找的解决方案。内容如下:

var r: TRectangle;
begin
// Find the background TRectangle style element for the button
r := (Button1.FindStyleResource('background') as TRectangle);
if Assigned(r) then
begin
r.Fill.Color := claBlue;
end;
end;


这不再起作用(我使用XE5,这是XE2吗?)。它在 r := ...语句中生成异常,并带有:

"illegal cast". 


FindStyleResource返回一个FMXObject。

TRectangle是一个TShape-> TControl-> TFMXObject。

我可以转换为TControl,但不能转换为TShape。如果您想知道,Button1是一个TButton。

有谁知道我该如何更改 TSpeedButton的颜色?

顺便说一句:有没有一种方法可以确定返回哪种类型的对象呢?我在调试器中找不到。

最佳答案

改用直接显示TColorButton属性的Color会容易得多。您可以在组件面板的Colors页面上找到它。这是IDE表单设计器中新的FMX表单上的两个:



至于“返回哪种类型的对象”,您可以使用调试器或ShowMessage作为返回值的TFMXObject.ClassName

var 
Obj: TFmxObject;
begin
Obj := Button1.FindResource('background');
if Assigned(Obj) then
ShowMessage(Obj.ClassName);
end;

关于delphi - 如何更改FM TSpeedButton的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19593805/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com