2

我们刚刚从 Delphi 2010 升级到 XE4 并第一次使用 FireMonkey,所以在黑暗中跌跌撞撞地试图弄清楚它是如何工作的。

根据不久前的查询,我试图让 TGrid 组件中的单个单元格根据某些规则以不同方式显示。我已经完成了 Mike Sutton 发布的有用代码:

Firemonkey Grid Control - 根据值设置单元格样式(通过 OnGetValue 函数调用)

我必须进行一些更改才能使其在 XE4 中编译;运行代码时一切正常,除了:

  1. FontFill 无法识别,因此暂时将其删除。
  2. 字体样式根本没有改变,无论如何它都显示为默认样式。

相关代码(其余的几乎与上面的链接相同):

Procedure TFinancialCell.ApplyStyle;
var 
  T: TFMXObject;
begin
  inherited;
  ApplyStyling;
end;

Procedure TFinancialCell.ApplyStyling;
begin
//  If IsNegative then
//    FontFill.Color:=claRed
//  else
//    FontFill.Color:=claBlack;

  Font.Style:=[TFontStyle.fsItalic];

  If IsImportant then
    Font.Style:=[TFontStyle.fsBold]
  else
    Font.Style:=[];

  If Assigned(Font.OnChanged) then
    Font.OnChanged(Font);

  Repaint;
end;

IsImportant 标志设置正确,因此这似乎不是问题。

对此的任何帮助将不胜感激。提前为我可能遗漏的任何愚蠢行为道歉。

4

1 回答 1

2

那篇文章在很大程度上已被我的 FireMonkey 指南网站http://monkeystyler.com/guide/Category:Grids中的某些内容所取代

从 XE3 开始,如果您想修改需要从 StyledSettings 属性中删除相应项目的内容,

StyledSettings := StyledSettings - [TStyledSetting.ssStyle, TStyledSetting.ssFontColor]

等等

要更改字体颜色,请使用 FontColor 属性

于 2013-05-11T12:57:51.940 回答