AGB  ·  Datenschutz  ·  Impressum  







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

LIstview Eintrag aber nicht Icon markieren

Ein Thema von Guido Eisenbeis · begonnen am 31. Mär 2007 · letzter Beitrag vom 4. Mai 2007
Antwort Antwort
Seite 2 von 3     12 3      
Guido Eisenbeis

Registriert seit: 9. Apr 2006
389 Beiträge
 
Delphi 10.3 Rio
 
#11

Re: LIstview Eintrag aber nicht Icon markieren

  Alt 6. Apr 2007, 06:14
@DGL-luke

Zitat von DGL-luke:
Hallo, könnte das ganz/teilweise einfärben mit der Transparenz zusammenhängen?
Die Sachen mit Transparenz, Mask, usw. hatte ich schon alle ausprobiert, bevor ich hier gepostet habe. Dennoch danke!


@bitsetter

Problem gelöst! Dein Code funktioniert wunderbar!

Ich hatte mittlerweile zwar selbst eine Lösung gefunden, wobei ich StateImages statt SmallImages benutzte. Deine Lösung ist jedoch besser! Es wird damit gezielt genau das Gewünschte erreicht, nämlich dass die Icons nicht mitmarkiert werden. Und sie ist sauberer, denn die StateImages stehen damit für ihren normalen Zweck zur Verfügung.

In deinem Code war ein winziger Fehler drin, wobei in GetBitmap() Item.ImageIndex verwendet werden muss statt Item.Index. Ansonsten ist der Code genau das, was ich gesucht habe!

Desweiteren, wenn man im ListView eine andere Farbe als Weiß eingestellt hat, wurden die Icons trotzdem weiß hinterlegt. Damit sie transparent gemalt werden, habe ich DrawIconEx benutzt. Dies und ein paar kleine Feintunig-Änderungen befinden sich im angehängten Downlod. Den habe ich entsprechend der Lösung umbenannt in "Icon wird NICHT mitmarkieren (Demo) 4".


Vielen Dank an dich für die Lösung! Und an alle anderen für ihre Hilfestellung.

Guido.

Edit: Schreibfehler im Beitrag korrigiert.
Angehängte Dateien
Dateityp: zip icon_wird_nicht_mitmarkiert__demo__4_390.zip (6,1 KB, 17x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#12

Re: LIstview Eintrag aber nicht Icon markieren

  Alt 6. Apr 2007, 11:18
@Guido

Ein bisschen Arbeit wollte ich ja auch noch für dich übriglassen.

Dank deiner Änderungen funktioniert es natürlich jetzt noch besser, wieder was dazugelernt.
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
Guido Eisenbeis

Registriert seit: 9. Apr 2006
389 Beiträge
 
Delphi 10.3 Rio
 
#13

Re: LIstview Eintrag aber nicht Icon markieren

  Alt 7. Apr 2007, 04:32
Hallo bitsetter.

Hier eine überarbeitete Version, bei der die Darstellung für inaktive ListItems implementiert ist. Vielleicht kannst du sie dir mal anschauen und sagen, ob du Verbesserungsvorschläge hast. Zum Beispiel ob es eine bessere Farb-Variable für "inaktiv" gibt. Derzeit verwende ich btnFace.

Dann fehlt jetzt nur noch eine Möglichkeit, die ListItems in der Höhe zu vergrößern, ohne dass die Schrift größer wird (und eine schöner Schrift wäre nicht schlecht ).
Wie könnte ich das denn bewerkstelligen?

Gruß,
Guido.
Angehängte Dateien
Dateityp: zip icon_nicht_mitmarkieren__demo__5_211.zip (7,0 KB, 17x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#14

Re: LIstview Eintrag aber nicht Icon markieren

  Alt 7. Apr 2007, 21:07
Zitat von Guido Eisenbeis:
Zum Beispiel ob es eine bessere Farb-Variable für "inaktiv" gibt. Derzeit verwende ich btnFace.
btnFace ist korrekt
Delphi-Quellcode:
       
Brush.Color := clBtnFace;
Font.Color:= clBtnText;
Zitat von Guido Eisenbeis:
Dann fehlt jetzt nur noch eine Möglichkeit, die ListItems in der Höhe zu vergrößern, ohne dass die Schrift größer wird (und eine schöner Schrift wäre nicht schlecht ).
Wie könnte ich das denn bewerkstelligen?
Das wir wohl so einfach nicht möglich sein, wozu brauchst du das, etwa für größere Bilder?
Wenn ich noch was herausfinde melde ich mich.
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
Guido Eisenbeis

Registriert seit: 9. Apr 2006
389 Beiträge
 
Delphi 10.3 Rio
 
#15

Re: LIstview Eintrag aber nicht Icon markieren

  Alt 7. Apr 2007, 22:00
Zitat von bitsetter:
btnFace ist korrekt
Delphi-Quellcode:
       
Brush.Color := clBtnFace;
Font.Color:= clBtnText;
Alles klar, danke.

Zitat von bitsetter:
Zitat von Guido Eisenbeis:
... eine Möglichkeit, die ListItems in der Höhe zu vergrößern, ohne dass die Schrift größer wird ...
... wozu brauchst du das, etwa für größere Bilder?
Aus zwei Gründen:
1. evtl. für größere Bilder (zweitrangig)
2. vor allem um die Abstände zwischen den Reihen "luftiger" darzustellen. So dass die Icons nicht so aneinander kleben.

Mein Ansatz: die Schriftgröße des ListViews größer stellen (z. B. auf 14) und dann eine Möglichkeit finden, den Item-Text mit einer kleineren Schriftgröße ins Canvas zu zeichnen. Leider habe ich noch keine Möglichkeit gefunden, Text ins Canvas zu zeichen, mit einer Schrift die kleiner als die im ListView eingestellte ist. Schalte ich kurzzeitig um und wieder zurück, gerät die DrawItem-Routine in eine Endlosschleife.

Mal sehen, was sich da so findet.

Gruß,
Guido.
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#16

Re: LIstview Eintrag aber nicht Icon markieren

  Alt 7. Apr 2007, 23:54
Moin,

das mit der Item Höhe habe ich jetzt mit einer Pseudo Imagelist gelöst, die Höhe der Liste ist die Item Höhe.
Was anderes fällt mir auch erst mal nicht ein.
Vom Prinzip her, könntest du jetzt auch größere Icone nehmen, musst vorher aber die Höhe und Breite der Imageliste anpassen. Das Gute ist, jetzt kannst du das Aussehen deines Listviews selber bestimmen.
Angehängte Dateien
Dateityp: zip icon_nicht_mitmarkieren__demo__6_457.zip (16,7 KB, 13x aufgerufen)
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
Guido Eisenbeis

Registriert seit: 9. Apr 2006
389 Beiträge
 
Delphi 10.3 Rio
 
#17

Re: LIstview Eintrag aber nicht Icon markieren

  Alt 9. Apr 2007, 19:29
Hallo bitsetter.

So, es ostert sehr! Deshalb hat meine Antwort auch ein bisschen gedauert.

Deinen obigen Code habe ich mir angesehen. Leider kann ich irgendwie nicht nachvollziehen, was das ListView anstellt, wenn man im ReportMode mit LargeImages arbeitet. Ich dachte, die hätten dann keine Auswirkung. Das ListView ist ein komisches Ding!

Das tut der Sache jedoch keinen Abbruch, dass dein Code funktioniert. Dafür meinen Dank!

Ich habe parallel dazu einen Code entwickelt, der eine andere mystische Kraft des ListViews nutzt. Ich stelle die Schriftgröße des ListViews zum Beispiel auf 14, fügt dann die ListItems hinzu und stelle hinterher die Schriftgröße wieder kleiner, zum Beispiel auf 8. Funktioniert nur beim Erstellen des ListViews und bei OwnerDraw:= true.

Nun behält das ListView die größere Zeilenhöhe bei, auch wenn zur Laufzeit weitere ListItems hinzugefügt werden. Die Zeichen-Routine im DrawItem-Event habe ich komplett überarbeitet. Sie funktioniert nun wirklich gut! Um das Zeichnen flackerfrei durchzuführen, benutze ich ein unsichtbares Bitmap. In diesem Bitmap werden zunächst die einzelnen Zeichenaktionen durchgeführt und danach in einem Rutsch ins ListView übertragen.

Wenn du willst schau's dir mal an. Wie gehabt: Über Verbesserungsvorschläge freue ich mich!

Gruß,
Guido.

PS: Da das Problem mit der Zeilenhöhe ein anderes ist, als das ursprüngliche dieses Topics, werde ich jetzt erstmal recherchieren und falls dann noch nötig, einen Thread zum Thema ListView-Zeilenhöhe öffnen.
Angehängte Dateien
Dateityp: zip icon_nicht_mitmarkieren__demo__7_155.zip (6,6 KB, 19x aufgerufen)
  Mit Zitat antworten Zitat
Timi-loader

Registriert seit: 10. Okt 2005
Ort: Berlin
97 Beiträge
 
Delphi 7 Personal
 
#18

Re: LIstview Eintrag aber nicht Icon markieren

  Alt 3. Mai 2007, 19:42
ist es auch möglich den hintergrund des icons einzufärben?

mfg
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#19

Re: LIstview Eintrag aber nicht Icon markieren

  Alt 3. Mai 2007, 20:46
Hallo,

wie meinst du das mit dem Hintergrund des Icons einfärben, etwa so wie im Bild?
Miniaturansicht angehängter Grafiken
hintergrund_878.jpg  
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
Timi-loader

Registriert seit: 10. Okt 2005
Ort: Berlin
97 Beiträge
 
Delphi 7 Personal
 
#20

Re: LIstview Eintrag aber nicht Icon markieren

  Alt 3. Mai 2007, 21:03
nja ich mein das nicht generell sondern nur beim selektieren.

mfg
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 07:46 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