![]() |
ListView ItemHeight
Wie komme ich an die korrekte höhe eines ListView Items?
bzw. kann diese an Hand des übergebenen Fonts berechnen wenn keine Möglichkeit besteht diese über Sendmessage zu erfahren. Wenn ich Trebuched MS und PointSize 12 verwende habe ich eine höhe von 17 und übergebe 19 (+ Ein Pixel oben\Unten) nur wie komme ich daran wenn sich der Font ändert. Eine Höhe einfach auf gut dünken einzugeben scheint mir nicht der richtige weg zu ein. Wobei diese sich auch wieder verändert wenn ein Image zum Row addiert wird. gruss |
AW: ListView ItemHeight
Bringt dich das weiter:
![]() Ich weiss allerdings nicht, in wie weit das bei der VCL funktioniert. |
AW: ListView ItemHeight
Zitat:
Werde wohl nicht drum herum kommen die Höhe abhängig vom Font über GdipMeasureString (boundingBox) zu ermitteln. Ist jetzt wider zusätzlicher aufwand aber was soll's gruss |
AW: ListView ItemHeight
Willst du das vorher wissen und selber die Höhe errechnen und die Itemhöhe setzen oder interessiert dich die Höhe des Items nach dem Ändern der Schrift?
Bei letzteren erhälst du die Höhe des Items über das TRect prc:
Delphi-Quellcode:
function ListView_GetItemRect(hWnd: HWND; i: Integer; var prc: TRect;
Code: Integer): Bool; begin if @prc <> nil then begin prc.left := Code; Result := Bool(SendMessage(hWnd, LVM_GETITEMRECT, i, LPARAM(@prc))); end else Result := Bool(SendMessage(hWnd, LVM_GETITEMRECT, i, 0)); end; |
AW: ListView ItemHeight
Zitat:
Delphi-Quellcode:
gruss
if FItemHeight = 0 then
begin ListView_GetItemRect(hListView, nItem, rc, LVIR_LABEL); FItemHeight := rc.Bottom - rc.top; end; |
AW: ListView ItemHeight
OPs.. Geht doch nicht.
Wenn ich einen höheren Fontsize sagen wir mal 16 verwende geht es wieder nicht. Bei 12 ist das kein Problem da bekomme ich die 19 so wie jetzt eingestellt. Bei 16 sind es 22 Wenn ich das über GDI+ mache bekomme ich die korrekt höhe erst beim zeichnen. Ich brauche sie aber früher. Wenn die höhe nicht exakt stimmt wird das falsche Item selektiert bzw. ein falscher Song abgespielt. Hmm... gruss |
AW: ListView ItemHeight
Hast du mal, versucht es über den Code zu versuchen, den ich gepostet habe? Bei mir funktioniert der. Allerdings funktioniert er unter iOS/Android nicht, wenn die Schriftgröße der Standardgröße entspricht :roll:
|
AW: ListView ItemHeight
Zitat:
Ich benötige die ItemHöhe aber vorher weil abhängig davon die Images gezeichnet werden die anzeigen ob ein Eintrag selektiert wurde bzw. beim drüberfahren auf den Items. Bei GDI+ habe ich das Problem das ich kein gültiges DC habe solange nichts gezeichnet wird. gruss |
AW: ListView ItemHeight
Edit: Quatsch!
|
AW: ListView ItemHeight
Zitat:
Zitat:
Nebenbei: Salopp gesagt! Ist der größte Mist mit dem ListView warum konnte man das nicht so wie bei der ListBox händeln. Extrem verkompliziert das ganze. gruss |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz