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 aber nicht Icon markieren (https://www.delphipraxis.net/89444-listview-eintrag-aber-nicht-icon-markieren.html)

Guido Eisenbeis 31. Mär 2007 03:34


LIstview Eintrag aber nicht Icon markieren
 
In einem Listview wird beim Markieren der jeweilige Eintrag eingefärbt (zum Beispiel blauer Hintergrund mit weißer Schrift). Hat dieser Eintrag nun ein Icon, so wird das Icon ebenfalls eingefärbt. Aber auch nicht immer! Manche Icons werden eingefärbt, andere nicht. :gruebel:

Ich will nun dass nur die eigentlichen Einträge (also der Text) gefärbt wird und die Icons sollen NICHT gefärbt werden. Ich habe nun selbst etliches ausprobiert, von den Einstellungen des ImageList bishin zum Einrichten einer eigenen Spalte nur für die Icons. Hierbei soll jedoch auch beim Klicken auf das Icon der (Text-) Eintrag markiert werden.

In der DP habe ich nun gesucht unter dem Stichwort "Listview". Es wurden 1.312 Thread aufgezeigt, wovon ich 1.313 :wink: durchgelesen habe. Lediglich bei der Eingrenzung mit "Icon" war ein 'halber' Treffer dabei: ListView: "Ganzes" item markieren?. Es geht dabei zwar um fast das selbe Thema, aber der Autor wollte das Icon immer markiert haben, während ich das Icon immer UNmarkiert haben will. (Dort gab es leider keine Lösung für sein Problem.)

Wie kann ich also erreichen, dass beim Markieren eines Listview-Eintrags nur der Text und nicht das Icon gefärbt wird?

Guido.

cherry 2. Apr 2007 10:01

Re: LIstview Eintrag aber nicht Icon markieren
 
hi...

hast du ein gewisses Muster erkannt, wann das Icon markiert wird und wann nicht??
Am besten stellst du gleich ma das ganze Projekt hoch, dann kann ich ja mal (in ner freien Minute)
einen Blick drauf werfen?! falls es nicht zu gross ist...

Gruss enemyleft

Guido Eisenbeis 3. Apr 2007 18:07

Re: LIstview Eintrag aber nicht Icon markieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo enemyleft.

Ich dachte schon, es würden garkeine Antworten mehr kommen. :wink: Oder dass dieses Problem zu popelig ist!? :stupid:

Doch nun im Ernst:

Zitat:

Zitat von cherry
hast du ein gewisses Muster erkannt, wann das Icon markiert wird und wann nicht??

Das Muster ist ganz klar: Einige Icons werden mitmarkiert (also bei ersten Mal genauso wie beim millionsten Mal) und andere werden nicht mitmarkiert (also weder beim ersten Mal noch beim millionsten Mal). Unter mitmarkiert verstehe ich das bläulichfärben bestimmter Bereiche eines Icons.

Zitat:

Zitat von cherry
Am besten stellst du gleich ma das ganze Projekt hoch, dann kann ich ja mal (in ner freien Minute)
einen Blick drauf werfen?! falls es nicht zu gross ist...

Hey, das ist cool! Ein Projekt kann man das eigentlich nicht nennen, denn es passiert lediglich im Control selbst (ListView). Ein entsprechendes Demo habe ich erstellt und hochgeladen.

Viel Erfolg beim Testen und Finden einer Lösung!

Guido.

cherry 4. Apr 2007 06:35

Re: LIstview Eintrag aber nicht Icon markieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Guten Morgen

Also ich entwickle mit BDS2006 und habe das mal so kompiliert wie ichs erhalten habe!
Ich habe die Ausführbare Datei mal hochgestellt... Also ich sehe bei mir kein Problem?! :gruebel:
Einzig bei Item 1 (unter Item von Item 0) ist kein Icon dran.

Schau dir doch bitte mal meine Exe an, ist da das Problem auch vorhanden oder nicht? :dance:

Guido Eisenbeis 5. Apr 2007 01:19

Re: LIstview Eintrag aber nicht Icon markieren
 
Hallo enemyleft.

Zitat:

Zitat von cherry
Ich habe die Ausführbare Datei mal hochgestellt...

Ich habe sie mir angesehen und es ist genau das gleiche, wie wenn ich sie selbst kompiliere.

Zitat:

Zitat von cherry
Also ich sehe bei mir kein Problem?! :gruebel:

Das Problem ist nach wie vor das gleiche: Wird ein Eintrag markiert, wird auch das Icon markiert. Das heißt, das Icon wird mitgefärbt (bläulich).

Zitat:

Zitat von cherry
Einzig bei Item 1 (unter Item von Item 0) ist kein Icon dran.

Doch, da ist ein Icon. Es handelt sich hier ja um ein ListView (kein Treeview). Das was hier nach einem SubItem-Pfeil aussieht, ist in Wirklichkeit ein Icon.

Es ist allerdings bei allen Icons so, dass sie mitgefärbt werden. Nur bei einigen sieht man es mehr, bei anderen weniger. Wie zum Beispiel beim Item 1 (also das mit dem "SubItem-Pfeil-Imitat" :wink: )


Guido.

cherry 5. Apr 2007 06:50

Re: LIstview Eintrag aber nicht Icon markieren
 
Zuerst schreibst du:

Zitat:

Zitat von Guido Eisenbeis
Hat dieser Eintrag nun ein Icon, so wird das Icon ebenfalls eingefärbt. Aber auch nicht immer! Manche Icons werden eingefärbt, andere nicht.

Und dann schreibst du:

Zitat:

Zitat von Guido Eisenbeis
Es ist allerdings bei allen Icons so, dass sie mitgefärbt werden. Nur bei einigen sieht man es mehr, bei anderen weniger.

Also in meinen Augen löst sich ja Problem 1 in Luft auf. (lol) Dies hat mich am Anfang ziemlich
verwirrt. :freak:

Jetzt wäre noch Problem 2, das einzige Problem das du hast oder?
Du willst, dass die Icons nicht mitmarkiert werden.

Also ich schau mal was ich rauskriege, ich denke aber einfach wird das nicht,
weil das so nicht vorgesehen ist.

Du müsstes wahrscheinlich, bei einer Markierung den Eintrag ganz selber Zeichnen, Mit allem drum und dran. Also:
Icon, Text und Textmarkierung... das kann ja noch heiter werden :stupid:

Bis denne

cherry 5. Apr 2007 08:07

Re: LIstview Eintrag aber nicht Icon markieren
 
Also ich habe bis jetzt herumgepröbelt... leider aber nichts brauchbares gefunden.
Ich habs mal so probiert... Aber ehrlich gesagt weiss ich nicht warum das
nicht geklappt hat?!

Delphi-Quellcode:
procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
  Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
begin
  DefaultDraw := true;
  bmp := TBitMap.Create;
  if cdsSelected in State then
  begin
    Imagelist1.GetBitmap(Item.Index,bmp);
    gr := TGraphic(bmp);
    ListView1.Canvas.Draw(Item.Position.X,Item.Position.Y,gr);
  end;
end;
erstens verändert sich aus irgendeinem Grund die Schriftart, dann
wird das Gezeichnete wieder überladen und und und...

Also ich würde jezt, wenn ich du wäre, eine Neue Komponente erstellen.
Direkt ableiten von TListView und die nötigen Proceduren anpassen,
respektive overriden!

> Anstatt die Idee mit der Komponente, kannst du auch alles selber Zeichnen,
ist vielleicht einfacher?!

Ich sollte mich jetzt mal hinter meine Arbeit klemmen, sonst hat mein
Chef nicht freude...

Also schöne Ostern allerseits

PS: versuche mal meine Funktion mit DefaultDraw := false, dann
siehst du das ich gar nicht soweit von der Lösung entfernt war.
(in meinen Gedanken auf jedenfall :stupid: )

Guido Eisenbeis 5. Apr 2007 18:53

Re: LIstview Eintrag aber nicht Icon markieren
 
Hallo enemyleft.

Zitat:

Zitat von cherry
Zuerst schreibst du:

Zitat:

Zitat von Guido Eisenbeis
Hat dieser Eintrag nun ein Icon, so wird das Icon ebenfalls eingefärbt. Aber auch nicht immer! Manche Icons werden eingefärbt, andere nicht.

Und dann schreibst du:

Zitat:

Zitat von Guido Eisenbeis
Es ist allerdings bei allen Icons so, dass sie mitgefärbt werden. Nur bei einigen sieht man es mehr, bei anderen weniger.

Also in meinen Augen löst sich ja Problem 1 in Luft auf. (lol) Dies hat mich am Anfang ziemlich verwirrt. :freak:

Ja, das stimmt so weit. Man lernt ja dazu. Und was am Anfang aussah als wäre es unmarkiert, stellte sich später heraus als ... :gruebel: ... tja, als was? Manche Icons werden fast garnicht mitmarkiert. Da sind dann nur bei genauem Hinsehen ein oder mehrere Ränder gefärbt/markiert. Deshalb habe ich im Demo geschrieben: "Die Icons 1 und 6 werden (scheinbar) nicht mitgefärbt."

Zitat:

Zitat von cherry
Jetzt wäre noch Problem 2, das einzige Problem das du hast oder?

Ach, wäre das schön! :party: *Scherz*

Aber mal im Ernst! Vielen Dank für deine Bemühungen. Deine obige Funktion habe ich getestet. Ist halt noch nicht "ausgereift". Investier nicht zu viel Zeit dafür, sonst ist dein Chef vielleicht wirklich irgendwann sauer. :dancer2:

Viele Grüße,
Guido.

DGL-luke 5. Apr 2007 19:09

Re: LIstview Eintrag aber nicht Icon markieren
 
Hallo, könnte das ganz/teilweise einfärben mit der Transparenz zusammenhängen? Nur so n Querschuss, ohne den Thread aufmerksam gelesen zu haben ;-)

bitsetter 5. Apr 2007 22:04

Re: LIstview Eintrag aber nicht Icon markieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Moin

@Guido
Dein Code habe ich jetzt ein "bisschen" umgeschrieben, das Icon wird jetzt nicht mehr mitmarkiert.

EDIT: Der Code wurde nochmal ein bisschen überarbeitet.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:55 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