fmx delphi berlin как изменить цвет шрифта в строках Tgrid

НУЖНА ПОМОЩЬ.. Я использую 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);

1 ответ

Вместо звонка Column.DefaultDrawCell(), ты можешь использовать FMX.Graphics.TCanvas.FillText() в сетке 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;

И как это выглядит:

введите описание изображения здесь

Другие вопросы по тегам