【问题标题】:Delphi XE4 Firemonkey Grid Control - Styling cells individuallyDelphi XE4 Firemonkey Grid Control - 单独设置单元格样式
【发布时间】:2013-05-10 08:25:38
【问题描述】:

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

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

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

我必须做一些修改才能让它在 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 标志设置正确,因此这似乎不是问题。

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

【问题讨论】:

  • 好问题,我自己也想知道。
  • 到目前为止我发现的唯一其他可能有用的信息在这里:monkeystyler.com/blog/entry/… 但是,我不知道这是否与我的查询相关,因为我不了解样式代码足够好。我的查询中提到的原始代码似乎很适合在发布时尝试过的人;我不确定是否是 XE3/XE4 更改导致它无法工作。

标签: delphi firemonkey tgrid


【解决方案1】:

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

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

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

等等

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

【讨论】:

  • 谢谢迈克,我已经成功了,太棒了。我不得不承认,我不清楚将这段代码放在哪里(我相信我会及时到达那里!);经过反复试验,我将其放入 TFinancialCell.ApplyStyling 中,然后它起作用了,所以我认为这是正确的?
  • 如果您使用自定义单元类,请将其弹出到构造函数中,因为它只需要运行一次。通过我提供的链接查看示例。
猜你喜欢
  • 2012-03-04
  • 1970-01-01
  • 2014-05-15
  • 2023-03-18
  • 2019-03-15
  • 1970-01-01
  • 1970-01-01
  • 2011-10-22
相关资源
最近更新 更多