AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ListView-Eintrag wird bei Windows 7 schwarz

Ein Thema von Deep-Sea · begonnen am 24. Jun 2010 · letzter Beitrag vom 28. Jun 2014
Antwort Antwort
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#1

AW: ListView-Eintrag wird bei Windows 7 schwarz

  Alt 28. Jun 2010, 14:39
Delphi-Quellcode:
procedure TForm1.ListView1AdvancedCustomDrawItem(Sender: TCustomListView;
  Item: TListItem; State: TCustomDrawState; Stage: TCustomDrawStage;
  var DefaultDraw: Boolean);
begin
If (Stage = cdPostPaint) then
With Sender as TListView do
  begin

     Button1.PaintTo(Canvas, Columns[0].Width, Item.DisplayRect(drBounds).Top);
     Brush.Style := bsClear;
  end;

end;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)

Geändert von SirThornberry (29. Jun 2010 um 07:30 Uhr) Grund: Delphi-Tags gesetzt - nächstes mal bitte selbst machen.
  Mit Zitat antworten Zitat
Benutzerbild von ChrisE
ChrisE

Registriert seit: 15. Feb 2006
Ort: Hechingen
504 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: ListView-Eintrag wird bei Windows 7 schwarz

  Alt 28. Jun 2010, 14:49
Oh man, dass hatte ich doch auch probiert...

Sch... With-Anweisungen. Immer das selbe. Da sehe ich doch jedes mal den Kontext nicht mehr

Aber so geht es zumindest bei mir (Vista -> Delphi 2007)

Greez, Chris
Christian E.
Es gibt 10 Arten von Menschen, die die Binär lesen können und die die es nicht können

Delphi programming rules
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#3

AW: ListView-Eintrag wird bei Windows 7 schwarz

  Alt 28. Jun 2010, 15:02
Jap, TWinControl.Brush.Style := bsClear; löst das Problem (es reicht aber aus, wenn man es einmal aufruft, es muss nicht bei jedem Draw-Ereignis sein. Zumindest bei meinem kurzen Test eben, oder?)
Super, was für ein Schei* wieder mal ...
Danke Bummi

Edit:
Zu früh gefreut. Es geht nicht. Es ist eig. noch schlimmer. Wenn man Gruppen nutzt, geht ja nichts mehr (beim eig. Programm ist alles außer den Items schwarz, beim Test aktualisieren sich die Einträge nicht mehr beim scrollen, ...)
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.

Geändert von Deep-Sea (28. Jun 2010 um 15:09 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.222 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: ListView-Eintrag wird bei Windows 7 schwarz

  Alt 28. Jun 2010, 15:17
Du musst schon dafür sorgen das dein Canvans mit deinen gewünschten Werten (Hintergrundfarbe, ...) belegt ist. Du weißt ja nicht für das er schon "mißbraucht" wurde. Bei Gruppierung wird ja die Gruppierungszeile auch mit dem Canvas gezeichnet so das dieser zwangsweise "verstellt" ist.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#5

AW: ListView-Eintrag wird bei Windows 7 schwarz

  Alt 28. Jun 2010, 15:21
Du musst schon dafür sorgen das dein Canvans mit deinen gewünschten Werten (Hintergrundfarbe, ...) belegt ist.
Ich zeichne den (fehlerhaft dargestellten) Text aber doch gar nicht

Edit:
Selbst wenn ich immer - unabhängig von Stage - folgendes mache: Canvas.Brush.Color := clRed; tritt der Fehler weiterhin genau so in Erscheinung.
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.

Geändert von Deep-Sea (28. Jun 2010 um 15:30 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von ChrisE
ChrisE

Registriert seit: 15. Feb 2006
Ort: Hechingen
504 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

AW: ListView-Eintrag wird bei Windows 7 schwarz

  Alt 28. Jun 2010, 15:30
Wobei dein Beispiel-Projekt so ja funktioniert, oder?
Delphi-Quellcode:
var
  lv: TListView;
begin
  If (Stage = cdPostPaint) and (Sender is TListView) then
  begin
    lv := Sender as TListView;
    Button1.PaintTo(lv.Canvas, lv.Columns[0].Width, Item.DisplayRect(drBounds).Top);
    lv.Brush.Style := bsClear;
  end;
end;
Greez, Chris
Christian E.
Es gibt 10 Arten von Menschen, die die Binär lesen können und die die es nicht können

Delphi programming rules
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#7

AW: ListView-Eintrag wird bei Windows 7 schwarz

  Alt 28. Jun 2010, 15:34
Wobei dein Beispiel-Projekt so ja funktioniert, oder? [...]
Siehe den Nachtrag von Post #11. Es geht, aber nicht mit Gruppen (die ich eben auch nutze).
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  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 09:24 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