Цвет фона Delphi TStringGrid отсутствует с левой стороны

Я использую следующий пользовательский OnDraw для раскрашивания фона ячейки в зависимости от номера столбца:

procedure TForm_ControlPanel.aoc_gridDrawCell(Sender: TObject;
  ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
var
  grid: TStringGrid;
  S: string;
  SavedAlign: word;
begin
  grid := Sender as TStringGrid;
  if (ACol = 2) and (ARow >= 1) then
  begin
    S := grid.Cells[ACol, ARow]; // cell contents
    grid.Canvas.Brush.Color := clGreen;
    grid.Canvas.FillRect(Rect);
    SavedAlign := SetTextAlign(grid.Canvas.handle, TA_CENTER);
    grid.Canvas.TextRect(Rect, Rect.Left + (Rect.Right - Rect.Left) div 2,
      Rect.Top + 5, S);
    SetTextAlign(grid.Canvas.handle, SavedAlign);
    grid.Canvas.Brush := grid.Brush;
  end;
end;

но в результате у меня всегда есть «полоса» с левой стороны, которая не окрашена:

левая часть ячейки не окрашена

Я использую Delphi XE6.


person Andreas Hinderberger    schedule 18.05.2014    source источник
comment
Спасибо, Джерри. Такого не нашел. Добавление Rect.Left := Rect.Left - 4; внутри процедуры решил это.   -  person Andreas Hinderberger    schedule 18.05.2014
comment
Я отменил вашу правку. Если вы хотите включить решение проблемы самостоятельно, сделайте это в форме ответа. Информация о том, как это сделать, приведена в разделе Могу ли я ответить на свой вопрос?.   -  person Ken White    schedule 18.05.2014
comment
А откат помогает чем? НИЧЕГО ТАКОГО!! Просто мне нужно вернуться в другой день, чтобы опубликовать то же, что и ответ, что вызовет больше путаницы, поскольку этот пост уже помечен как дубликат....   -  person Andreas Hinderberger    schedule 18.05.2014
comment
Откат помогает, потому что а) он сохраняет вопрос в том виде, в котором вы его разместили, и б) он учит вас (и других) правильно отвечать на ваши собственные вопросы здесь (как и ссылка, которую я предоставил вам в своем предыдущем комментарии).   -  person Ken White    schedule 18.05.2014