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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2292
Erhaltene Danke: 420

[Win NT] 5.1 x86 6.1 x64
[Delphi] 7 PE, 2006, 10.1 Starter, Lazarus - [C#] VS Exp 2012 - [Android API 15] VS Com 2015, Eclipse, AIDE - [C++] Builder 10.1
BeitragVerfasst: Mi 04.04.18 18:44 
Leider nicht. Das gilt auch für andere Steuerelemente, die Checkboxen inne haben.

_________________
„Politicians are put there to give you the idea that you have freedom of choice. You don’t. You have no choice. You have owners. They own you. They own everything." (George Denis Patrick Carlin)
Sinspin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1169
Erhaltene Danke: 81

Win7
DXE2 Prof, 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.

_________________
Solange keine Zeile Code geschrieben ist, läuft ein Programm immer fehlerfrei.
Ich teste nicht, weil ich Angst habe Fehler zu finden.
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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2292
Erhaltene Danke: 420

[Win NT] 5.1 x86 6.1 x64
[Delphi] 7 PE, 2006, 10.1 Starter, Lazarus - [C#] VS Exp 2012 - [Android API 15] VS Com 2015, Eclipse, AIDE - [C++] Builder 10.1
BeitragVerfasst: Fr 06.04.18 07:08 
Scheint so, denn ich kann das bei mir nicht reproduzieren:

lazarus_listview

Getestet mit den Dateiformaten .BMP, .PNG und .ICO. (ja, unter Lazarus)
Einloggen, um Attachments anzusehen!
_________________
„Politicians are put there to give you the idea that you have freedom of choice. You don’t. You have no choice. You have owners. They own you. They own everything." (George Denis Patrick Carlin)

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.