В том же файле находим TCustomGrid.DrawAlternatingBackground (предположительно 2138 стрчока)
procedure TCustomGrid.DrawAlternatingBackground(const DrawingContent: TControl; const Canvas: TCanvas);
var
I: Integer;
P: TPointF;
begin
if TGridOption.AlternatingRowBackground in FOptions then
for I := 0 to VisibleRows - 1 do
begin
if Odd(TopRow + I) then
begin
P := Content.LocalToAbsolute(PointF(0, (TopRow + I) * FRowHeight));
P := DrawingContent.AbsoluteToLocal(P);
Canvas.FillRect(RectF(P.X, P.Y, P.X + Content.Width,
P.Y + FRowHeight), 0, 0, [], AbsoluteOpacity, FOddFill);
end;
end;
Меняем 2150 строчку на:
procedure TCustomGrid.DrawAlternatingBackground(const DrawingContent: TControl; const Canvas: TCanvas);
var
I: Integer;
P: TPointF;
begin
if TGridOption.AlternatingRowBackground in FOptions then
for I := 0 to VisibleRows - 1 do
begin
if Odd(TopRow + I) then
begin
P := Content.LocalToAbsolute(PointF(0, (TopRow + I) * FRowHeight));
P := DrawingContent.AbsoluteToLocal(P);
Canvas.FillRect(RectF(P.X + ViewportPosition.X, P.Y, P.X + Content.Width + ViewportPosition.X,
P.Y + FRowHeight), 0, 0, [], AbsoluteOpacity, FOddFill); // <-- добавляем смещение ViewportPosition
end;
end;
end;
Ошибку завел в трекере. Временный Workaround:
Открыть файл FMX.Grid.pas
Найти TCustomGrid.DoContentPaint
Предположительно 2292 строчка. Найти код:
if TGridOption.RowLines in Options then
begin
W := Content.Width - 1;
P := TPointF.Create(0, TopRow * FRowHeight);
P := Content.LocalToAbsolute(P);
P := TControl(Sender).AbsoluteToLocal(P);
P.Offset(0.5, -0.5);
for I := 0 to VisibleRows do // no -1
begin
Canvas.DrawLine(P, PointF(P.X + W, P.Y), LAbsoluteOpacity);
P.Offset(0, FRowHeight);
end;
end;
Добавить после P.Offset(0.5, -0.5)
P.X := P.X + ViewportPosition.X;
Добавить исправленный файл в ваш проект.