Delphi-PRAXiS
Seite 1 von 3  1 23      

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 24. Jun 2010 12:55

ListView-Eintrag wird bei Windows 7 schwarz
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallöchen,
mich plagt seit einiger Zeit ein kleiner Grafikfehler mit der ListView unter Windows 7 - und das soll nun ein Ende haben :-D

Erst einmal ein Bild, damit man sieht, was gemeint ist:
Anhang 31513

Wie man sieht ist der zweite Eintrag schwarz, obwohl dort das gleiche drin steht wie in den anderen beiden. Ein Eintrag wird schwarz, wenn ich mit der Maus darüber fahre - aber auch nicht immer, keine Ahnung woran das liegt. Das passiert aber auch nur, wenn ich selbst etwas zeichne (in dem Beispiel einen Button). Hier mal der Quellcode:
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);
  end;
end;
Wie man sieht, nichts besonderes. Mehr ist in dem ganzen Beispielprogramm auch nicht enthalten. Der ViewStyle der ListView steht auf vsReport (wie man ja eig. sieht).
Es tritt nur unter Windows 7 auf (ggf. auch Vista, aber das kann ich nicht testen), unter XP aber nicht.
Jemand eine Idee? :stupid:

Deep-Sea 28. Jun 2010 11:06

AW: ListView-Eintrag wird bei Windows 7 schwarz
 
*push*

Och kommt schon, ihr wollt mir doch net sagen, dass noch niemand mal selbst etwas in eine ListView gezeichnet hat?! :-D

ChrisE 28. Jun 2010 13:54

AW: ListView-Eintrag wird bei Windows 7 schwarz
 
Kannst du mal das Beispielprojekt anhängen?

Und tritt es nur unter Windows 7 auf oder auch unter Vista?

Greez, Chris

DeddyH 28. Jun 2010 14:04

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

Zitat von Deep-Sea (Beitrag 1031282)
Es tritt nur unter Windows 7 auf (ggf. auch Vista, aber das kann ich nicht testen), unter XP aber nicht.

;) Ich hab hier Vista, ein Beispielprojekt kann ich gern mal schnell testen.

Deep-Sea 28. Jun 2010 14:17

AW: ListView-Eintrag wird bei Windows 7 schwarz
 
Liste der Anhänge anzeigen (Anzahl: 1)
So, bitte sehr - da habt ihr das riesige Projekt :P

DeddyH 28. Jun 2010 14:24

AW: ListView-Eintrag wird bei Windows 7 schwarz
 
Jepp, passiert unter Vista auch. Allerdings ist mir aufgefallen (ich habe 3 Testeinträge gemacht), dass dies nur passiert, wenn man "von oben", d.h. vom vorherigen Eintrag kommt. Zieht man durch bis zum letzten und geht dann wieder zurück, ist die Darstellung normal.

Deep-Sea 28. Jun 2010 14:30

AW: ListView-Eintrag wird bei Windows 7 schwarz
 
Gut, dass es unter Vista ähnlich ist, war zu erwarten.

Das mit dem "von oben kommen" ist hier so, stimmt. Im eigentlich Programm um das es geht ist ein Eintrag immer schwarz, egal von wo ich komme. Allerdings nutzt dieses Programm auch Gruppen. Das Problem ist denke ich aber das gleiche ...

ChrisE 28. Jun 2010 14:36

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

Zitat von DeddyH (Beitrag 1032097)
Jepp, passiert unter Vista auch...wenn man "von oben", d.h. vom vorherigen Eintrag kommt...

Kann ich bestätigen.

Außerdem scheint es nur der Texthintergrund zu sein. Der scheint schwarz zu werden.

Ich hab mit Delphi 2007 getestet.

Greez, Chris

[Edit]Font.Color := clRed bei Listview1 und man sieht was ich meine[/Edit]

Bummi 28. Jun 2010 14:39

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

ChrisE 28. Jun 2010 14:49

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


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:05 Uhr.
Seite 1 von 3  1 23      

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