AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi DBGrid / DrawColumnCell - Darstellungsfehler
Thema durchsuchen
Ansicht
Themen-Optionen

DBGrid / DrawColumnCell - Darstellungsfehler

Ein Thema von wurzelsepp1 · begonnen am 29. Nov 2023 · letzter Beitrag vom 29. Nov 2023
Antwort Antwort
wurzelsepp1

Registriert seit: 9. Dez 2012
107 Beiträge
 
Delphi 3 Professional
 
#1

DBGrid / DrawColumnCell - Darstellungsfehler

  Alt 29. Nov 2023, 17:36
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:
if Table.FieldByName('gelesen').AsInteger = 0 then
  DBGrid.Canvas.Font.Style := [fsbold];

MailsDBGrid.DefaultDrawColumnCell(Rect, DataCol, Column, State);
Jemand eine Idee?
  Mit Zitat antworten Zitat
wurzelsepp1

Registriert seit: 9. Dez 2012
107 Beiträge
 
Delphi 3 Professional
 
#2

AW: DBGrid / DrawColumnCell - Darstellungsfehler

  Alt 29. Nov 2023, 18:54
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?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.062 Beiträge
 
Delphi 12 Athens
 
#3

AW: DBGrid / DrawColumnCell - Darstellungsfehler

  Alt 29. Nov 2023, 19:17
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:
  ...
  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;
Allerdings hab ich kein RowSelect, womit es weniger auffällt.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (29. Nov 2023 um 19:42 Uhr)
  Mit Zitat antworten Zitat
wurzelsepp1

Registriert seit: 9. Dez 2012
107 Beiträge
 
Delphi 3 Professional
 
#4

AW: DBGrid / DrawColumnCell - Darstellungsfehler

  Alt 29. Nov 2023, 21:38
Als ich vor Kurzem einmal das Delphi-Grid benutzte, kam nach nervigen Stunden sowas bei raus ....
Das ist eine gute Idee, danke. Ist dann zwar nicht mehr bold im Balken, aber ich finde das ganz sieht ganz ordentlich aus.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.062 Beiträge
 
Delphi 12 Athens
 
#5

AW: DBGrid / DrawColumnCell - Darstellungsfehler

  Alt 29. Nov 2023, 22:20
Im DataSet.OnAfterScroll steht noch ein Grid.Invalidate;
Bei irgendwas wurde nicht richtig gemalt ... aber Kommentar vergessen
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:14 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