![]() |
DBGrid / DrawColumnCell - Darstellungsfehler
Moin Gemeinde,
ich habe da ein DBGrid, das neue Datensätze "fett" darstellen soll. Dazu habe ich in DrawColumnCell Font.Style auf bold gesetzt. Funktioniert prima. Nun wird die Zeile bei den fetten Datensätzen "zerbröselt" dargestellt, wenn der Datensatz (row select) markiert ist. Bei den nicht fetten Zeilen tritt der Effekt nicht auf. Das ganze ist so gebaut:
Delphi-Quellcode:
Jemand eine Idee?
if Table.FieldByName('gelesen').AsInteger = 0 then
DBGrid.Canvas.Font.Style := [fsbold]; MailsDBGrid.DefaultDrawColumnCell(Rect, DataCol, Column, State); |
AW: DBGrid / DrawColumnCell - Darstellungsfehler
Es hat wohl damit zu tun, dass die Zeile, wenn der Cursor darauf steht, nicht komplett gelöscht und neu geschrieben wird. Daher das scheinbare Doppelbild. Scheinbar wird die Zeile dann ohne das Attribut "fett" gezeichnet.
Aber wo stelle ich das ein? :stupid: |
AW: DBGrid / DrawColumnCell - Darstellungsfehler
Wenn die Zeile selektiert ist, dann wird der Hintergrund nicht gelöscht
und somit über das Alte gemalt (blöd, wenn es einen anderen Style hatte) Ist die Selection aus, dann wird immer vorher der Hintergrund "komplett" gelöscht/übermalt. (außer es gibt ein Clipping, z.B. beim Scrollen) [add] Als ich vor Kurzem einmal das Delphi-Grid benutzte, kam nach nervigen Stunden sowas bei raus ....
Delphi-Quellcode:
Allerdings hab ich kein RowSelect, womit es weniger auffällt.
...
if gdSelected in State then begin // Bugfix: DefaultDraw hatte bereits ohne fsBold gemalt UND DefaultDrawColumnCell malt bei Selected nicht nochmal den Hintergrund Exit; //Grid.Canvas.Font.Style := []; //Grid.Canvas.Font.Color := {clHighlightText}clWindowText; end; Grid.DefaultDrawColumnCell(Rect, DataCol, Column, State); // eigentlich Grid.DefaultDraw=False end; |
AW: DBGrid / DrawColumnCell - Darstellungsfehler
Zitat:
|
AW: DBGrid / DrawColumnCell - Darstellungsfehler
Im DataSet.OnAfterScroll steht noch ein
Delphi-Quellcode:
Grid.Invalidate;
Bei irgendwas wurde nicht richtig gemalt ... aber Kommentar vergessen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:45 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