Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   DBGrid in selektierter Zeile wird Text doppelt angezeigt (https://www.delphipraxis.net/169324-dbgrid-selektierter-zeile-wird-text-doppelt-angezeigt.html)

philubb 12. Jul 2012 10:53

Datenbank: mysql • Version: x • Zugriff über: clientdataset

DBGrid in selektierter Zeile wird Text doppelt angezeigt
 
Hi

Habe ein Problem mit einem DBGrid.
Befüllen und alles klappt, auch das jede zweite Zeile eine andere Farbe hat.

Nun möchte ich, auch die Schrift der einzelnen Zeilen, je nachdem mit welchem Wert sie befüllt sind ändern.

Das mache ich in OnDrawColumnCell so:

Delphi-Quellcode:
  if cdsAnlagen_VKN.FieldByName('HIERARCHIE').AsString = 'Oberanlage' then
  begin
    dbGridAnlage_VKN.Canvas.Font.Style := [fsBold];
  end;

  if (( cdsAnlagen_VKN.RecNo mod 2) = 0) then
    dbGridAnlage_VKN.Canvas.Brush.Color := $D3D3D3;

  if cdsAnlagen_VKN.FieldByName('HIERARCHIE').AsString = 'Ersatzanlage' then
  begin
    dbGridAnlage_VKN.Canvas.Font.Color := $7C7C7C;
    dbGridAnlage_VKN.Canvas.Font.Style := [fsItalic];
  end;

  dbGridAnlage_VKN.DefaultDrawColumnCell(Rect, 0, Column, State);
Das funktioniert auch so weit. :)

Mein Problem ist nun, wenn ich im DBGrid scrolle, werden bei der selektierten Zeile der formatierte Text angezeigt und hintendran der gleiche Text (in weiß) nur unformatiert, dadurch verschwimmt der Text beim lesen.

Jumpy 12. Jul 2012 12:17

AW: DBGrid in selektierter Zeile wird Text doppelt angezeigt
 
Vllt. die "selecteten" Zeilen von der eigenformatierung aussparen:

Delphi-Quellcode:
if not (gdSelected in State) then
  begin
 
  //Dein Code

  end;

philubb 12. Jul 2012 12:45

AW: DBGrid in selektierter Zeile wird Text doppelt angezeigt
 
Liste der Anhänge anzeigen (Anzahl: 1)
Nein, das hilft nicht :(

Im Anhang, mal ein Bild von meinem Problem, ja ich weiß, ist nicht das beste, aber man sieht von was ich rede :)

Da ist mir grad aufgefallen, dass es immer nur an der blau hinterlegten zelle das problem auftaucht. ^^

Bummi 12. Jul 2012 13:09

AW: DBGrid in selektierter Zeile wird Text doppelt angezeigt
 
versuch mal damit
Delphi-Quellcode:
  if (( Adodataset1.RecNo mod 2) = 0) then
    DBGrid1.Canvas.Brush.Color := $D3D3D3
   else
    DBGrid1.Canvas.Brush.Color := $FFFFFF;

Uwe Raabe 12. Jul 2012 13:47

AW: DBGrid in selektierter Zeile wird Text doppelt angezeigt
 
Hast du für das Grid auch das Property DefaultDrawing auf false gesetzt?

philubb 12. Jul 2012 14:28

AW: DBGrid in selektierter Zeile wird Text doppelt angezeigt
 
@bummi

top deine lösung funktioniert :thumb:

@Uwe Raabe

Zitat:

Hast du für das Grid auch das Property DefaultDrawing auf false gesetzt?
ja hatte ich auf false gesetzt.

Perlsau 13. Jul 2012 14:18

AW: DBGrid in selektierter Zeile wird Text doppelt angezeigt
 
Nimm das TjvDBGrid aus den Jedi-Komponenten, das bringt diese Funktionalität bereits mit.


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:44 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