![]() |
DBGrid.Canvas.Brush.Color -> dgrowselect anzeigen
Hallo zusammen,
ich habe in dem Ereignis on DrawColumnCell folgenden Code hinterlegt:
Delphi-Quellcode:
Wie bekomme ich es hin, das die mit der Farbe clmaroon ausgefüllten Zeilen, auch beim selktieren der Zeile grau angezeigt werden und nicht maroon bleiben ?
if DataModuleConnectionGeraete.QueryVerlauf['GEBUCHT'] = NULL then
begin DBGridVerlauf.Canvas.Brush.Color :=clmaroon; DBGridVerlauf.DefaultDrawColumnCell(Rect, DataCol, Column,State); end; Gruss Holger |
Re: DBGrid.Canvas.Brush.Color -> dgrowselect anzeigen
Das mußt du seber tun.
Der Status steht im Parameter State |
Re: DBGrid.Canvas.Brush.Color -> dgrowselect anzeigen
Und nach was frage ich den Parameter State ab ?
|
Re: DBGrid.Canvas.Brush.Color -> dgrowselect anzeigen
Zitat:
Delphi-Quellcode:
if State = gdSelected ...
|
Re: DBGrid.Canvas.Brush.Color -> dgrowselect anzeigen
Ja so klappt es:
Delphi-Quellcode:
Nur bleibt die erste Spalte in der ursprünglichen Farbe. Warum und geht das auch zu beheben ?
if State <> [gdselected] then
begin DBGridVerlauf.Canvas.Brush.Color :=clmaroon; DBGridVerlauf.DefaultDrawColumnCell(Rect, DataCol, Column, State); end; Gruss Holger |
Re: DBGrid.Canvas.Brush.Color -> dgrowselect anzeigen
Zitat:
|
Re: DBGrid.Canvas.Brush.Color -> dgrowselect anzeigen
Wie erledige ich das mit ?
Gruss und schonmal danke für die Hilfe ... Holger |
Re: DBGrid.Canvas.Brush.Color -> dgrowselect anzeigen
Indem du in der State-Abfrage sie jeweilige Farbe die setzt
Delphi-Quellcode:
if State = [gdselected] then
begin DBGridVerlauf.Canvas.Brush.Color :=clmaroon else //Sonstige Farbe DBGridVerlauf.DefaultDrawColumnCell(Rect, DataCol, Column, State); end; |
Re: DBGrid.Canvas.Brush.Color -> dgrowselect anzeigen
Hallo,
so habe ich das auch gemacht. Nur bleibt die erste Spalte trotzdem in der alten Farbe. Vielleicht ncoh einen Hinweis ? Gruss Holger |
Re: DBGrid.Canvas.Brush.Color -> dgrowselect anzeigen
Hast du mal geschaut, ob die Routine überhaupt aufgerufen wird?
|
Re: DBGrid.Canvas.Brush.Color -> dgrowselect anzeigen
Klar, sonst würden ja nicht die anderen Spalten farblich geändert.
Ist irgendwie komisch. Nur die erste Spalte ? Alle andern werden farblcih richtig dargestellt Gruss Holger |
Re: DBGrid.Canvas.Brush.Color -> dgrowselect anzeigen
Dir Routine wird ja für jede Spalte einzeln aufgerufen (pro Zelle einmal).
Setzt mal einen Breakpoint und schau, ob das für die erste Spalte auch der Fall ist und mit welchen Werten sie aufgerufen wird. |
Re: DBGrid.Canvas.Brush.Color -> dgrowselect anzeigen
Hallo,
bei mir heisst die erste Spalte 'ID' wenn ich mit
Delphi-Quellcode:
abfrage, führt er showmessage aus.
if Column.Title.Caption = 'ID' then
begin showmessage('ID'); end; Wenn ich aber:
Delphi-Quellcode:
dann führt er showmessage nicht aus.
if State = [gdselected] then
begin if Column.Title.Caption = 'ID' then begin showmessage('ID'); end; end; Wenn ich dann die zweite Spalte abfrage, welche 'Anlass' heisst, führt er showmessage aus. Das sieht so aus:
Delphi-Quellcode:
Warum umgeht er bei gdselected die erste Spalte ???
if State = [gdselected] then
begin if Column.Title.Caption = 'Anlass' then begin showmessage('ID'); end; end; Gruss Holger |
Re: DBGrid.Canvas.Brush.Color -> dgrowselect anzeigen
Es scheint, als ob die 1. Spalte nicht selektierbar ist.
|
Re: DBGrid.Canvas.Brush.Color -> dgrowselect anzeigen
Dann muss man das wohl so hin nehmen ...
Trotzdem danke Gruss Holger |
Re: DBGrid.Canvas.Brush.Color -> dgrowselect anzeigen
Hast du diese fixiert?
|
Re: DBGrid.Canvas.Brush.Color -> dgrowselect anzeigen
Wo schaue ich das nach ob die fixiert ist ?
Gruss Holger |
Re: DBGrid.Canvas.Brush.Color -> dgrowselect anzeigen
.FixedCols > 0
|
Re: DBGrid.Canvas.Brush.Color -> dgrowselect anzeigen
Das DBGrid hat keine Eigenschaft fixedCols
So klappt es nicht:
Delphi-Quellcode:
Gruss
if DBGrid.fixedCols > 0 then ...
Holger |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz