Wenn die Zeile selektiert ist, dann wird der Hintergrund nicht gelöscht
und somit über das Alte gemalt (blöd, wenn es einen anderen Style hatte)
Ist die Selection aus, dann wird immer vorher der Hintergrund "komplett" gelöscht/übermalt. (außer es gibt ein Clipping, z.B. beim Scrollen)
[add]
Als ich vor Kurzem
einmal das Delphi-Grid benutzte, kam nach nervigen Stunden sowas bei raus ....
Delphi-Quellcode:
...
if gdSelected in State then begin // Bugfix: DefaultDraw hatte bereits ohne fsBold gemalt UND DefaultDrawColumnCell malt bei Selected nicht nochmal den Hintergrund
Exit;
//Grid.Canvas.Font.Style := [];
//Grid.Canvas.Font.Color := {clHighlightText}clWindowText;
end;
Grid.DefaultDrawColumnCell(Rect, DataCol, Column, State); // eigentlich Grid.DefaultDraw=False
end;
Allerdings hab ich kein RowSelect, womit es weniger auffällt.