ListItem.DisplayRect

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
ws46
Beiträge: 3
Registriert: So 29. Okt 2023, 16:08

ListItem.DisplayRect

Beitrag von ws46 »

Hallo,
ich habe ein (kleines) Problem:
ich verwende in einem ListView eine Imagelist mit Images der Größe 48x48 Pixeln.
Unter Windows liefert Item.DisplayRect(drIcon) die (korrekte) Höhe von 49 Pixeln, unter Linux allerdings 22 Pixel. Habe ich irgendwo eine Einstellung übersehen oder ist das ein Bug?

Lazarus 2.2.0 /FPC 3.2.2

wp_xyz
Beiträge: 4893
Registriert: Fr 8. Apr 2011, 09:01

Re: ListItem.DisplayRect

Beitrag von wp_xyz »

Funktioniert bei mir einwandfrei unter win32/64, gtk2, qt5 (außer gtk3, das liefert Höhe 0). Mein Programm im Anhang.

Hast du die ImageList richtig reingehängt? Nur der ViewIcon vsList benötigt die LargeImages, bei allen anderen muss die ImageList an SmallImages angeschlossen sein (auch wenn die Bilder mit 48x48 eher "groß" sind).
Dateianhänge
listview_displayRect_48.zip
(5.93 KiB) 61-mal heruntergeladen
Zuletzt geändert von wp_xyz am So 29. Okt 2023, 23:28, insgesamt 1-mal geändert.

ws46
Beiträge: 3
Registriert: So 29. Okt 2023, 16:08

Re: ListItem.DisplayRect

Beitrag von ws46 »

Die Imageliste ist richtig eingehängt. Der Viewstyle ist vsList, allerdings werden die Einträge über onCustomDrawitem dargestellt.. In der Routine wird, eben um Icon und Text korrekt darstellen zu können, das DisplayRect ermittelt, das aber unter Windows und Linux unterschiedliche Werte liefert.

ws46
Beiträge: 3
Registriert: So 29. Okt 2023, 16:08

Re: ListItem.DisplayRect

Beitrag von ws46 »

Problem gelöst. ViewStyle = vsReport, eine Spalte mit Autosize = true , Caption = '' hat das Problem beseitigt.

Aber warum das unter Windows mit ViewStyle = vsList einwandfrei funktioniert, unter Linux aber nicht, ist mir immer noch rätselhaft. Aber was soll's.

Danke für das Mitdenken!

Antworten