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 ListBox zum MeastureItem zwingen (https://www.delphipraxis.net/46569-listbox-zum-meastureitem-zwingen.html)

derpepe 27. Mai 2005 12:39


ListBox zum MeastureItem zwingen
 
Hallo,

Ich habe eine OwnerDrawVariable-Listbox. Diese möchte ich jetzt dazu zwingen das aktuelle Item neu zu "vermessen".
Dazu soll sie ListBox.OnMeasureItem aufrufen. Aber wie geht das?
Refresh geht nicht. Repaint macht das auch nicht.
Ja gibt es denn gar nichts?!

Die Suche hat mir leider auch nicht weitergeholfen.

Danke schonmal, liebe Grüße

Peter

jim_raynor 27. Mai 2005 12:55

Re: ListBox zum MeastureItem zwingen
 
Eine wirklich Dumme möglichkeit die mir gerade einfällt wäre Eintrag zu löschen und neu einzufügen. Dann sollte er auf jeden Fall die Höhe neu ermitteln.

derpepe 27. Mai 2005 15:46

Re: ListBox zum MeastureItem zwingen
 
Daran dachte ich auch schon. Ist nur etwas blöde wenn der Eintrag mittendrin steht. Außerdem hab ich ein Array das konstant zur Listbox mitläuft, da wäre das schon ätzend...

jim_raynor 27. Mai 2005 15:54

Re: ListBox zum MeastureItem zwingen
 
Du kannst doch mit Insert den Eintrag genau an die Stelle einfügen, an der er rausgelöscht wurde.

Delphi-Quellcode:
ListBox1.Items.Delete(Index);
ListBox1.Items.Insert('Hallo',Index);

derpepe 27. Mai 2005 16:03

Re: ListBox zum MeastureItem zwingen
 
ah, ok.
Wußte ich gar nicht.

Aber schön ist das ja dann immer noch nicht, oder?

BTW: Gibts auch einen Befehl um ein Array-Element zu löschen und die anderen aufrücken lassen oder brauch ich da ne FOR-Schleife?


edit:
Delphi-Quellcode:
ListBox1.Items.Insert('Hallo',Index);
ist falsch, es müßte
Delphi-Quellcode:
ListBox1.Items.Insert(Index,'Hallo');
heißen!

edit2: funzt astrein!

SirThornberry 27. Mai 2005 16:16

Re: ListBox zum MeastureItem zwingen
 
und um auf das löschen zu verzischten geht auch noch
Delphi-Quellcode:
Listbox.Items.BeginUpdate;
Listbox.Items.EndUpdate;

jim_raynor 27. Mai 2005 17:17

Re: ListBox zum MeastureItem zwingen
 
Zitat:

Zitat von derpepe
BTW: Gibts auch einen Befehl um ein Array-Element zu löschen und die anderen aufrücken lassen oder brauch ich da ne FOR-Schleife?

Ich verweise immer wieder gerne auf: http://www.delphipraxis.net/internal...ht=deletearray ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:18 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