Autor Beitrag
rushifell
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 306
Erhaltene Danke: 14



BeitragVerfasst: Mi 04.04.18 17:46 
Hallo,

ich programmiere in Lazarus 1.4.2. Ich habe eine Listview im Viewstyle vsReport mit Smallimages. Beim Auswählen bzw. Anklicken einer Zeile wird die komplette Zeile blau markiert, bei den Smallimages bleibt ein weißer Hintergrund. Gibt es eine Möglichkeit, die ganze Zeile blau zu markieren, außer im OnCustomDraw selbst zu Zeichnen?

Viele Grüße
Richard
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 04.04.18 18:44 
- Nachträglich durch die Entwickler-Ecke gelöscht -
Sinspin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1321
Erhaltene Danke: 117

Win 10
RIO, CE, Lazarus
BeitragVerfasst: Do 05.04.18 10:06 
Das wäre ja dann entweder der Hintergrund der Images, was man eventuell mit einen transparenten Hintergrund hinbekommen würde.
Sieht aber sicher nicht so toll aus.
Oder das gesamte Image müsste "eingeblaut" werden. Das habe ich schonmal irgendwo gesehen. Aber jedenfalls nicht bei standard Komponenten. Das wirst Du dann wohl selber versuchen müssen.

_________________
Wir zerstören die Natur und Wälder der Erde. Wir töten wilde Tiere für Trophäen. Wir produzieren Lebewesen als Massenware um sie nach wenigen Monaten zu töten. Warum sollte unser aller Mutter, die Natur, nicht die gleichen Rechte haben?
rushifell Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 306
Erhaltene Danke: 14



BeitragVerfasst: Do 05.04.18 21:19 
Danke für Eure Antworten. Ich muss die transparente Farbe manuell in der Imagelist einstellen. Wenn die Hintergrundfarbe weiß ist, muss ich also weiß wählen. Wenn ich die Voreinstellung nehme, funktioniert es nicht. Jetzt wird das Smallimage wenigstens mit hellblauem Hintergrund gezeichnet, sobald die entsprechende Zeile gewählt ist.

Alternativ habe ich nun eine Kopie der Bilder mit blauem Hintergrund. Beim Anwählen wird zum Smallimage mit dem blauen Hintergrund gewechselt. Ist nicht ganz optimal, beim ersten Klick dauert der Wechsel der Bilder recht lange.

Problem bei beiden Varianten ist, dass sich am rechten Rand des Smallimages ein weißer Balken befindet, den ich nicht wegbekommen. Dadurch ist die blau markierte Zeile unterbrochen. Entweder mache ich etwas falsch oder das ist normal.

Viele Grüße
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Fr 06.04.18 07:08 
- Nachträglich durch die Entwickler-Ecke gelöscht -

Für diesen Beitrag haben gedankt: rushifell
rushifell Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 306
Erhaltene Danke: 14



BeitragVerfasst: Fr 06.04.18 08:22 
Danke, dass Du Dir die Mühe gemacht hast es auszuprobieren. Das Problem tritt bei den Subitems, also ab der zweiten Spalte auf. Ich benutze Bilder im PNG-Format mit einer Größe von 18x18 Pixel. Hab's auch schon mit einer Größe von 16x16 Pixel probiert, das Gleiche Problem. Ich werde es Mal mit Icons, die eine Größe von 16x 16 Pixel hahen, testen.
rushifell Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 306
Erhaltene Danke: 14



BeitragVerfasst: Sa 07.04.18 06:02 
Ich hab das Problem gelöst.

ausblenden Delphi-Quelltext
1:
2:
3:
Uses UxTheme:
...
SetWindowTheme(Listview1.Handle, 'Explorer'nil);


Jetzt wird die ganze Zeile markiert inklusive Smallimages, so wie ich es haben wollte.