Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   DBGrid, selecktierte Zeile markieren. (https://www.delphipraxis.net/203644-dbgrid-selecktierte-zeile-markieren.html)

Luckner 7. Mär 2020 15:44

Datenbank: Firebird • Version: 2.5 • Zugriff über: TDataset

DBGrid, selecktierte Zeile markieren.
 
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

Luckner 7. Mär 2020 19:49

AW: DBGrid, selecktierte Zeile markieren.
 
Habe, nach einem Hinweis, die Zeile:
Delphi-Quellcode:
TextOut( Rect.Left, Rect.Top, Column.Field.Text );
durch
Delphi-Quellcode:
GridArtikelGrid.DefaultDrawColumnCell(Rect, DataCol, Column, State);
ersetzt und es funktioniert jetzt. Danke.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:45 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz