0

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

谢谢..

4

3 回答 3

1

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

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

于 2015-03-05T15:44:54.523 回答
0

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

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

  StringGrid1.DefaultDrawing := False;

然后在 StringGrid DrawColumnCell事件中写入:

  Canvas.fill.Color := TAlphaColorRec.Green;
  Canvas.FillText(Bounds, (Value.AsString),
    false, 100, [], TTextAlign.taLeading, TTextAlign.taCenter);
于 2015-03-18T14:13:19.713 回答
0

在 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 的更改。

于 2016-07-04T17:03:03.030 回答