Всем доброго времени суток, очень помогла тема и ответы выше. Решил добавить небольшой пример касательно "Tgriddrawstates" ( Указание выделена ли строка, выделена ячейка и в фокусе ли ячейка или нет ) Может быть полезно новичкам.
procedure TForm4.StringGrid1DrawColumnCell(Sender: TObject;
const Canvas: TCanvas; const Column: TColumn; const [Ref] Bounds: TRectF;
const Row: Integer; const [Ref] Value: TValue; const State: TGridDrawStates);
var
TextLayout : TTextLayout;
TextRect: TRectF;
begin
if TGridDrawState.RowSelected in State then
Canvas.Fill.Color := TAlphaColors.Blue;
else
Canvas.Fill.Color := TAlphaColors.white;
end;
вместе с кодом отрисовки ячейки грида выше можно управлять цветом фона да и чем угодно при например выделении строки.