Delphi XE4 Firemonkey网格控制 - 单独设置单元格样式

时间:2013-05-10 08:25:38

标签: delphi firemonkey tgrid

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

根据一段时间的查询,我试图让TGrid组件中的单个单元格根据某些规则进行不同的显示。我已经完成了Mike Sutton发布的有用代码:

Firemonkey Grid Control - Styling a Cell based on a value (via the OnGetValue function call)

我必须做一些修改才能在XE4中编译它;运行代码时看起来都没问题,除了:

  1. 字体填充无法识别,因此暂时将其删除。
  2. 字体样式根本不变,它显示为默认样式,无论如何。
  3. 相关代码(其余部分几乎与上面的链接相同):

    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标志正确设置,因此似乎不是问题。

    对此有任何帮助真的很感激。我可能会遗漏任何愚蠢的事情。

1 个答案:

答案 0 :(得分:2)

我的FireMonkey指南网站http://monkeystyler.com/guide/Category:Grids

在很大程度上取代了那篇文章。

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

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

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