我正在尝试创建一个Firemonkey TGrid,它将根据值显示更改背景颜色的值,但我似乎无法在firemonkey中获得新样式的东西。
我遵循Firemonkey Grid Control - Styling a Cell based on a value (via the OnGetValue function call)的建议和结构并创建了自定义TTextcel衍生物,但我仍然无法找到如何更改背景颜色。
我尝试FindStyleResource('background') as TRectangle
,但这总是返回nil。
任何人都可以通过这个方式让我进入正轨吗?
[附加信息]
完成Mike Sutton的建议,它开始在我身上曙光;)
编辑框给了我一个布局结构,我设法将它链接到我的TTExtCel控件。这样我就可以通过foreground: BrushObject
更改前景色。
但背景是使用TSubImage和TRectAnimation完成的。如果我理解正确,TSubimage将占用Windows7 Style.png
的一部分,并在编辑框中显示。如何用TRectangle替换TSubImage,以便我可以改变BrushColor?结构和属性编辑器窗口不允许我添加除TLayout之外的任何样式元素...
答案 0 :(得分:1)
我认为你正在使用XE3。 XE3中的样式使用位图作为背景等,所以即使找到“背景”样式组件,它也可能不是TRectangle(因此你应该避免这种盲目转换)。
在表单上弹出一个TEdit,右键单击并选择“编辑自定义样式”。然后,您将看到风格中的内容。您可以根据需要修改它,或者您可能需要完全重新设计它(可能使用自定义位图,也许可以返回矩形)。然后,您可以设置每个单元格StyleLookup属性以使用它,或者将StyleName样式设置为TextCellStyle,以便为每个TTextCell自动拾取它。
[附加信息] 要在样式编辑器中添加对象,请将其从工具选项板拖到结构窗格(屏幕的左上角)。要启动新元素,请将其放在最顶层(根)项上。然后你可以设置它的StyleName,然后你需要应用并关闭双击Stylebook以返回编辑器并使你的更改生效(是的,这很糟糕)。
您可以在结构窗格中拖放内容以重复使用旧样式中的项目。