Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Probleme mit OnMeasureItem bei ListBox (https://www.delphipraxis.net/170285-probleme-mit-onmeasureitem-bei-listbox.html)

Popov 9. Sep 2012 16:26

Probleme mit OnMeasureItem bei ListBox
 
Ich hab gerade ein kleines Problem das brennt. Und zwar will ich mitten im Betrieb die Höhe des ListBox Items ändern, nur klappt das nicht.

Soweit ich weiß macht man das über OnMeasureItem, das klappt auch wunderbar beim Start, nur wird dann OnMeasureItem nicht mehr aufgerufen. Die Höhe ändert sich somit nachträglich nicht.

Ich hatte das Problem schon mal und da hatte ich eine Lösung gefunden, aber ich kann mich nicht erinnern was es war. Ich weiß nur noch, dass es relativ sonderbar war.

Bernhard Geyer 9. Sep 2012 16:28

AW: Probleme mit OnMeasureItem bei ListBox
 
Ich tipp darauf das Windows hier den gemssenen Wert cacht so das du Windows "glaubhaft versichern" musst das sich was am Item geändert hat.
Evtl. Text des Items "ändern" (z.B. auf "" setzen und dann auf richtigen Wert")

EWeiss 9. Sep 2012 17:10

AW: Probleme mit OnMeasureItem bei ListBox
 
Warum sonderbar sollte eigentlich so funktionieren.

Delphi-Quellcode:
SendMessageW(Handle, LB_SETITEMHEIGHT, 0, ListItemHeight);


Dazu muss aber das Flag(Style) LBS_NOINTEGRALHEIGHT gesetzte sein.

gruss

Popov 9. Sep 2012 17:37

AW: Probleme mit OnMeasureItem bei ListBox
 
Zitat:

Zitat von EWeiss (Beitrag 1182207)
Warum sonderbar ...

Sonderbar, weil es machbar ist, aber mir das letzte Mal aufgefallen ist, dass es nur unter bestimmten Bedingungen funktioniert. Nur kann ich mich nicht mehr dran erinnern.

Dein Tipp teste ich später, jetzt muß ich das Tool vorerst so abliefern wie es ist. Ich melde mich aber noch und sag bescheid ob es funktioniert hat.

EWeiss 9. Sep 2012 18:00

AW: Probleme mit OnMeasureItem bei ListBox
 
Zitat:

Sonderbar, weil es machbar ist,
Jo hab ich schon verstanden ;)

Wollte nur gegenhalten und sagen das es nicht sonderbar ist. :)
Wenn man weiss wie ;)

gruss

Popov 9. Sep 2012 23:03

AW: Probleme mit OnMeasureItem bei ListBox
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1182205)
Ich tipp darauf das Windows hier den gemssenen Wert cacht so das du Windows "glaubhaft versichern" musst das sich was am Item geändert hat.
Evtl. Text des Items "ändern" (z.B. auf "" setzen und dann auf richtigen Wert")

Ich hab gerade das getestet und dabei wird OnMeasureItem erneut aufgerufen

Delphi-Quellcode:
  for i := 0 to ListBox1.Count - 1 do
    ListBox1.Items[i] := ListBox1.Items[i];
Man muß anscheinend doch Windows glaubhaft versichern, dass sich am Item etwas verändert hat.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:32 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz