需要帮助..我正在使用delphi 10.1柏林。与Embarcadero Delphy Code Gear的其他普通版本有一些不同。我需要更改TGrid行中的字体颜色。这个下一个代码我将更改背景颜色,但我只需要更改字体颜色:
aRowColor.Color := arSTATUS_GRID_COLOR[0];
Canvas.FillRect(Bounds, 0, 0, [], 1, aRowColor);
Column.DefaultDrawCell(Canvas, Bounds, Row, Value, State);
答案 0 :(得分:4)
您可以在网格Column.DefaultDrawCell()
事件中使用FMX.Graphics.TCanvas.FillText()
,而不是调用OnDrawColumnCell()
。
documentation解释了详细信息,但重点是在调用Canvas.Fill.Color
之前将Canvas.FillText()
设置为所需的颜色
示例代码:
procedure TForm28.Grid1DrawColumnCell(Sender: TObject; const Canvas: TCanvas;
const Column: TColumn; const Bounds: TRectF; const Row: Integer;
const Value: TValue; const State: TGridDrawStates);
begin
case Row of
0: Canvas.Fill.Color := TAlphaColors.Red;
1: Canvas.Fill.Color := TAlphaColors.Blue;
2: Canvas.Fill.Color := TAlphaColors.Green;
3: Canvas.Fill.Color := TAlphaColors.Blueviolet;
end;
Canvas.FillText(Bounds, Value.AsString, false, 1, [], TTextAlign.Leading, TTextAlign.Center);
end;
它看起来如何: