【问题标题】:How to change the colour of the stringgrid particular cell using Delphi XE7如何使用 Delphi XE7 更改 stringgrid 特定单元格的颜色
【发布时间】:2015-03-05 09:05:17
【问题描述】:

我正在使用 Delphi XE7 开发 Android 应用程序。因为我使用了 TStringGrid 组件,然后我使用了 StringGrid.cells[0, 0] := 'Test' 以及如何更改我在代码中显示的特定单元格的字体颜色。而且我还有this sample code,,但我无法更改特定单元格的字体颜色。请任何人解释我如何更改特定单元格值的字体颜色。而且我使用的是 Delphi XE7,我的目标是 Android 手机。

谢谢..

【问题讨论】:

  • 你对 FMX 造型了解多少?我怀疑你对此并不熟悉。在您熟悉它之前,您可能会就您曾经使用过的每一个控件提出这个问题。它从TToolbar 开始,现在是TStringGrid
  • 您询问了 TToolbar here 和渐变按钮 here,以及现在的 stringgrid 单元格。请对使用 FMX 样式进行一些研究,这样您就不会问如何使用每个控件来处理影响外观的每一件小事。

标签: delphi firemonkey delphi-xe7 tgrid firemonkey-style


【解决方案1】:

在 FireMonkey TStringGrid 中没有每个单元格样式选项。您要么需要使用第三方网格控件,要么自己从 TGrid 中滚动一些东西。

你可以在我的网站http://monkeystyler.com/guide找到大量关于后者的材料

【讨论】:

    【解决方案2】:

    我终于找到了我需要的解决方案。请按照步骤操作。我们可以改变 TStringGrid 本身的字体颜色,无需使用 TGrid。请按照以下步骤操作。

    首先在 FormCreate 事件中分配这个:

      StringGrid1.DefaultDrawing := False;
    

    然后在 StringGrid DrawColumnCell 事件中这样写:

      Canvas.fill.Color := TAlphaColorRec.Green;
      Canvas.FillText(Bounds, (Value.AsString),
        false, 100, [], TTextAlign.taLeading, TTextAlign.taCenter);
    

    【讨论】:

      【解决方案3】:

      在 XE8 中也适用于 TStringGrid OnDrawColumnCell 事件。

      这里有一个示例,将颜色保持为黑色,但将字体样式设置为粗体。提示,为字体添加 2 个像素的内边距,从左边距开始。

      var Rect : TRectF;
      begin
        Rect := Bounds;
        Rect.Left := Rect.Left + 2;
        Canvas.Font.Style := [TFontStyle.fsBold];
        Canvas.Fill.Color := TAlphaColorRec.Black;
        Canvas.FillText(Rect, (Value.AsString), false, 100, [], TTextAlign.taLeading, TTextAlign.taCenter);
      end;
      

      我一开始错过的不是将 DefaultDrawing 设置为 false!在我设置之后,该事件正在接受对 Canvas 的更改。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-01-21
        • 1970-01-01
        • 2015-01-28
        • 1970-01-01
        • 1970-01-01
        • 2011-10-05
        • 1970-01-01
        相关资源
        最近更新 更多