Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi ListView-Eintrag wird bei Windows 7 schwarz (https://www.delphipraxis.net/152493-listview-eintrag-wird-bei-windows-7-schwarz.html)

Deep-Sea 28. Jun 2010 15:02

AW: ListView-Eintrag wird bei Windows 7 schwarz
 
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 :-D

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, ...)

Bernhard Geyer 28. Jun 2010 15:17

AW: ListView-Eintrag wird bei Windows 7 schwarz
 
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.

Deep-Sea 28. Jun 2010 15:21

AW: ListView-Eintrag wird bei Windows 7 schwarz
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1032109)
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.

ChrisE 28. Jun 2010 15:30

AW: ListView-Eintrag wird bei Windows 7 schwarz
 
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

Deep-Sea 28. Jun 2010 15:34

AW: ListView-Eintrag wird bei Windows 7 schwarz
 
Zitat:

Zitat von ChrisE (Beitrag 1032112)
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).

Bummi 28. Jun 2010 15:37

AW: ListView-Eintrag wird bei Windows 7 schwarz
 
Ich nutze ListView nie, aber wenn Du auf den Hoovereffekt verzichten kannst, oder mehr zu Fuß machen willst könntest auch OwnerDraw auf true setzen?

ChrisE 28. Jun 2010 15:43

AW: ListView-Eintrag wird bei Windows 7 schwarz
 
Zitat:

Zitat von Deep-Sea (Beitrag 1032113)
Siehe den Nachtrag von Post #11. Es geht, aber nicht mit Gruppen (die ich eben auch nutze).

Dann werde ich hier wohl aussteigen müssen. Hab nur D2007. Da gibts keine Groups.
Ein Tipp wäre noch, dass ganze nicht in OnAdvancedCustomDrawItem sondern in OnAdvancedCustomDrawSubItem aus zu probieren und es nur zu machen wenn SubItem = 1 ist.

Greez, Chris

Deep-Sea 28. Jun 2010 15:50

AW: ListView-Eintrag wird bei Windows 7 schwarz
 
Zitat:

Zitat von Bummi (Beitrag 1032115)
[...] wenn Du auf den Hoovereffekt verzichten kannst, oder mehr zu Fuß machen willst könntest auch OwnerDraw auf true setzen?

Mh ... Hoover brauch ich für den konkreten Fall zwar nicht, aber alles selbst zu zeichen und den wahren Fehlergrund nicht zu kennen sehe ich nicht wirklich als befriedigende Lösung an :stupid:


Zitat:

Zitat von ChrisE (Beitrag 1032117)
Dann werde ich hier wohl aussteigen müssen. [...] Ein Tipp wäre noch, dass ganze nicht in OnAdvancedCustomDrawItem sondern in OnAdvancedCustomDrawSubItem aus zu probieren [...]

Schade. Und: In OnAdvancedCustomDrawSubItem geht es genau so wenig.

Bummi 28. Jun 2010 15:55

AW: ListView-Eintrag wird bei Windows 7 schwarz
 
Zitat:

Mh ... Hoover brauch ich für den konkreten Fall zwar nicht, aber alles selbst zu zeichen und den wahren Fehlergrund nicht zu kennen sehe ich nicht wirklich als befriedigende Lösung an
stimmt, befriedigend ist es nicht ...
mit Deinem ursprünglichen Code und Ownerdraw=true sieht es bai mir aber halbwegs brauchbar aus, auch ohne zusätzlicuen Code.

Muß los
LG
Bummi

Deep-Sea 29. Jun 2010 07:17

AW: ListView-Eintrag wird bei Windows 7 schwarz
 
Zitat:

Zitat von Bummi (Beitrag 1032120)
mit Deinem ursprünglichen Code und Ownerdraw=true sieht es bai mir aber halbwegs brauchbar aus, auch ohne zusätzlicuen Code.

Sofern man keine SubItems nutzt, denn diese werden dann nicht mehr automatisch gezeichnet.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:39 Uhr.
Seite 2 von 3     12 3      

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