Jetzt ist es leider noch so, das die SMDBGrid tierisch beim scrollen flackert. Und zwar nur die von Hand gezeichneten Zeilen, der Gruppierung. HAb schon mit DoubleBuffered versucht, das zu beheben - hilft aber leider nicht.
Diesen Code nutze ich im "DrawGroupingCell"-Ereignis:
Delphi-Quellcode:
procedure TfrmOrderManagement.SMDBGridDrawGroupingCell(Sender: TObject;
ACanvas: TCanvas; CellRect: TRect; Group: TSMGrouping; Text: string;
var DefaultDrawing: Boolean);
begin
DefaultDrawing := False;
ACanvas.Brush.Color := clBlack;
ACanvas.Font.Color := clWhite;
ACanvas.FillRect(CellRect);
CellRect.Left := CellRect.Left + 4;
CellRect.Top := CellRect.Top + 2;
DrawText(ACanvas.Handle, PChar(Text), Length(Text), CellRect, DT_LEFT or DT_WORDBREAK or DT_EXPANDTABS or DT_NOPREFIX or DT_VCENTER);
end;
Wie kann man das verbessern? Wie bekomme ich dieses "lästige" Flackern weg?