fmx delphi berlin 如何更改 Tgrid 行中的字体颜色

Lui*_*ino 2 delphi fonts tgrid firemonkey delphi-10.1-berlin

需要帮助..我正在使用delphi 10.1 berlin。与之前版本的 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);
Run Code Online (Sandbox Code Playgroud)

Tom*_*erg 5

Column.DefaultDrawCell()您可以FMX.Graphics.TCanvas.FillText()在 grids事件中使用,而不是调用OnDrawColumnCell()

文档解释了细节,但要点是在调用之前设置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;
Run Code Online (Sandbox Code Playgroud)

它看起来如何:

在此输入图像描述