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

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

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

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


FontFill无法识别,因此暂时将其清空。
字体样式完全没有改变,无论如何都会显示为默认样式。


相关代码(其余大部分与上面的链接相同):

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

任何帮助,将不胜感激。对于任何我可能丢失的愚蠢事,事先致歉。

最佳答案

我的FireMonkey Guide网站http://monkeystyler.com/guide/Category:Grids中的某些内容已取代了该文章。

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

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


等等

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

关于delphi - Delphi XE4 Firemonkey网格控件-分别设置单元格的样式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16477985/

10-12 17:55