我正在使用 Delphi XE7 开发 Android 应用程序。在那我使用了TStringGrid 组件,然后我使用
StringGrid.cells[0, 0] := 'Test'
了我如何更改我在代码中显示的那个特定单元格的字体颜色。而且我也有这个示例代码,但我无法更改特定单元格的字体颜色。请任何人解释我如何更改特定单元格值的字体颜色。我正在使用 Delphi XE7,我的目标是 Android 手机。
谢谢..
我正在使用 Delphi XE7 开发 Android 应用程序。在那我使用了TStringGrid 组件,然后我使用
StringGrid.cells[0, 0] := 'Test'
了我如何更改我在代码中显示的那个特定单元格的字体颜色。而且我也有这个示例代码,但我无法更改特定单元格的字体颜色。请任何人解释我如何更改特定单元格值的字体颜色。我正在使用 Delphi XE7,我的目标是 Android 手机。
谢谢..
在 FireMonkey TStringGrid 中,没有每个单元格样式选项。你要么需要使用第三方网格控件,要么自己从 TGrid 中滚动一些东西。
您可以在我的网站http://monkeystyler.com/guide上找到关于后者的大量材料
最后,我找到了我需要的解决方案。请按照步骤操作。我们可以改变 TStringGrid 本身的字体颜色,无需使用 TGrid。请按照以下步骤操作。
首先在FormCreate事件中分配这个:
StringGrid1.DefaultDrawing := False;
然后在 StringGrid DrawColumnCell事件中写入:
Canvas.fill.Color := TAlphaColorRec.Green;
Canvas.FillText(Bounds, (Value.AsString),
false, 100, [], TTextAlign.taLeading, TTextAlign.taCenter);
在 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 的更改。