Einzelnen Beitrag anzeigen

g00gle-gott
(Gast)

n/a Beiträge
 
#1

Viele Items in eine Listbox adden - simultan zur Berechnung?

  Alt 4. Mär 2009, 20:46
Hallo,

ich habe folgendes Problem:
ich habe ein kleines Programm zu "türme von Hanoi" geschrieben und das Ergebnis soll in einer Listbox ausgegeben werden... Das klappt auch wunderbar, nur, dass es bei immer größer werdender Anzahl von Einträgen in die Listbox irgendwann seeeeehhhhr lange dauert, bis die Items in die Listbox übertragen werden. (ich kann anhand einer Progressbar den status der Berechnung sehen und sehe, dass die Berechnung bereits beendet ist, aber das Programm die Items erst nach der Berechnung in die Listbox lädt!) und das wiederum dauert wirklich sehr lange.

ich habe bereits folgendes versucht:

form1.ListBox1.Items.BeginUpdate; sowie
form1.ListBox1.Items.Endupdate; was, laut ausgiebiger g00gle suche, den Vorgang schneller machen sollte...

Zitat:
Adding a (larger) group of entries to a ListBox is very slow,
because after every "items.add" call the ListBox is repainted.

There are two ways to overcome this:

use the Windows message WM_SETREDRAW (see Win32.hlp for details).
The VCL provides two methods for this: BeginUpdate and EndUpdate.
(bringt allerdings nicht viel an geschwindigkeit !)

nun wollte ich fragen, ob es andere schnellere Arten gibt, die Items anzuzeigen und am besten diese sogar simultan zur Berechnung zu adden ...

Anmerkung: ich habe das Programm für meinen PDA mit lazarus kompiliert und auf diesem werden die Ergebnisse simultan zur Berechnung geaddet!

könnte es evtl nicht auch in Delphi die Möglichkeit geben, die Listbox so einzustellen, dass die Items simultan geaddet werden??

vielen Dank schomal im Vorraus

MFG Ändy
  Mit Zitat antworten Zitat