我正在使用Delphi XE7开发Android应用程序。因为我使用了 TStringGrid 组件,然后我使用了
StringGrid.cells[0, 0] := 'Test'
如何更改我在代码中显示的特定单元格的字体颜色。而且我有this sample code,但我无法更改特定单元格的字体颜色。请任何人解释我如何更改特定单元格值的字体颜色。我正在使用Delphi XE7,我的目标是Android移动设备。
谢谢..
答案 0 :(得分:1)
在FireMonkey TStringGrid中,没有每个单元格样式选项。您将需要使用第三方网格控件或自己从TGrid滚动。
您可以在我的网站http://monkeystyler.com/guide
上找到关于后者的大量资料答案 1 :(得分: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);
答案 2 :(得分: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的更改。