WM_MEASUREITEM wird nicht getriggert

Antworten
CTS
Beiträge: 2
Registriert: Fr 29. Okt 2021, 13:55

WM_MEASUREITEM wird nicht getriggert

Beitrag von CTS »

Hallöle in die Runde,

ich versuche, mehrzeilige (Sub-)Items in einem ListView zu generieren.

Allerdings wird niemals die Message WM_MEASUREITEM getriggert. Auf die müßte ich aber reagieren, um die Höhe des Items zu verändern.
OwnerDraw ist TRUE.

Kann mir jemand helfen?

Windows 10, Lazarus und FPC sind Stand heute (gerade neu heruntergeladen und installiert)...

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

Re: WM_MEASUREITEM wird nicht getriggert

Beitrag von wp_xyz »

Ich bin nicht sicher, ob ein TListView Zeilen mit unterschiedlichen Höhen haben kann. Im gesamten Quellcode von TCustomListView, sowohl in den Ordnern lcl und lcl/include, als auch für das entsprechende Windows-Widget (Ordner lcl/interfaces/win32) finde ich nirgendwo die Buchstaben "measure", und wenn ich WM_MEASUREITEM in Google eingebe, erwähnt die gefundene Microsoft-Seite (https://docs.microsoft.com/de-de/window ... easureitem) nur "Listen- und Kombinationsfelder", also TListBox und TComboBox. Bist du sicher, dass du da nichts durcheinandergebracht hast?

Wenn du unterschiedliche Zeilen in einem TListView-ähnlichen Control in "Report"-Darstellung brauchst, dann könntest du zu VirtualTreeView wechseln (was aber einiges an Änderungen im Quellcode bedeutet) oder zu TStringGrid, das man so designen kann, dass es sich optisch kaum noch von TListView unterscheidet.

CTS
Beiträge: 2
Registriert: Fr 29. Okt 2021, 13:55

Re: WM_MEASUREITEM wird nicht getriggert

Beitrag von CTS »

Danke wp_xyz,

ich glaube auch, damit bin ich auf dem Holzweg.

Es geistern halt einige Snippets im i-Net herum, die das angeblich via WM_MEASUREITEM können mit einer TListView.

Ich versuche das jetzt lieber mit ner TListBox, das erscheint mir erfolgversprechender. Die bietet ja auch direkt ein OnMeasureItem-Event.

Antworten