Hallo,
um die Farben in einem DBGrid zu ändern habe ich folgende Routine eingetragen:
Delphi-Quellcode:
procedure TFrameArtikel.GridArtikelGridDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState);
begin
with GridArtikelGrid.Canvas do
begin
if State = [gdSelected, gdFocused] then
begin
Brush.Color := $00D8D8D8; //Farbe für die Zelle mit dem Focus
Font.Color := $00000000 ; //Farbe für die Schrift mit dem Focus
end
else
begin
Brush.Color := $00FFFFFF;
Font.Color := $00000000;
end;
FillRect( Rect );
TextOut( Rect.Left, Rect.Top, Column.Field.Text );
end;
end;
Jetzt wird leider nur eine Zelle entsprechend den Änderungen markiert, aber nicht mehr die ganze Zeile. Obwohl 'dgRowselect = True' gesetzt ist.
Muß ich in 'FillRect( Rect );' das 'Rect' durch etwas anderes ersetzen?
Kann Jemand helfen?
Danke, Luckner