【发布时间】:2026-01-03 03:05:02
【问题描述】:
我完成了此处发布的示例作为我的起点:Change background of TTextCell in a Firemonkey TGrid
我创建了一个引用图像的 textcellstyle,它运行良好。当我运行程序时,所有单元格都按预期显示背景图像。
从上面的链接中,Mike Sutton(我希望你正在阅读这篇文章,如果没有你的意见我们会怎么做!)写道(在这里重复只是为了更容易):
“然后,您可以设置每个单元格的 StyleLookup 属性以使用它,或者将样式 StyleName 设置为 TextCellStyle 以便为每个 TTextCell 自动拾取它。”
根据关于更改字体颜色的查询 (Delphi XE4 Firemonkey Grid Control - Styling cells individually),是否也可以动态设置背景颜色?
我创建单元格的代码:
Constructor TFinancialCell.Create(AOwner:TComponent);
begin
inherited;
StyleLookup:='textcellstyle';
StyledSettings:=StyledSettings-[TStyledSetting.ssStyle,TStyledSetting.ssFontColor];
TextAlign:=TTextAlign.taTrailing;
end;
这会将我的图像成功应用到 TFinancialCell。
但是,根据字体颜色查询,我希望仅在达到某个值或其他任何值时才显示图像背景:
Procedure TFinancialCell.ApplyStyling;
begin
Font.Style:=[TFontStyle.fsItalic];
If IsNegative then
FontColor:=claRed
else
FontColor:=claGreen;
If IsImportant then Font.Style:=[TFontStyle.fsItalic,TFontStyle.fsBold];
If Assigned(Font.OnChanged) then
Font.OnChanged(Font);
Repaint;
end;
任何有关如何执行此操作的帮助将不胜感激。
【问题讨论】:
-
理论上,假设样式不使用位图,在 ApplyStyle 中调用
FindStyleResource('background'),它应该返回一个 TRectangle,您可以将其更改为 Fill.Color。如果失败了,我会在有时间的时候看看。
标签: delphi colors grid firemonkey