![]() |
Viele Items in eine Listbox adden - simultan zur Berechnung?
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:
Delphi-Quellcode:
sowie
form1.ListBox1.Items.BeginUpdate;
Delphi-Quellcode:
was, laut ausgiebiger g00gle suche, den Vorgang schneller machen sollte...
form1.ListBox1.Items.Endupdate;
Zitat:
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 |
Re: Viele Items in eine Listbox adden - simultan zur Berechn
Du könntest die Einträge zuerst einer Stringliste hinzufügen und diese dann an die Items anfügen
|
Re: Viele Items in eine Listbox adden - simultan zur Berechn
bei einer Listview könnt man den virtuellen Modus nehmen und nur die Anzahl der Einträge setzen. Bei einer Listbox weiß ich nicht ob sowas geht. Alternative Listbox-Implementieren wie z.B. das ElPack haben damit weniger Probleme da diese nicht den hier vorhandenen Bodleneck der Übertragens ans Win32-Control haben.
|
Re: Viele Items in eine Listbox adden - simultan zur Berechn
@mkinzler
ok, und wie würde das dann aussehen? also meine hauptprozedur sieht momentan wie folgt aus:
Delphi-Quellcode:
(die Progressbar mal nicht beachten) das is die standardprozedur (rekursiv) um Türme von Hanoi zu lösen...
procedure turm (n : integer; A,B,C : String);
begin form1.ListBox1.Items.BeginUpdate; if n > 1 then begin turm (n-1, A, C ,B); Form1.Listbox1.items.add(A + ' nach ' + C); form1.progressbar1.position:=form1.listbox1.items.count; turm (n-1, B , A, C); end else begin Form1.ListBox1.items.add(A + ' nach ' + C); form1.progressbar1.position:=form1.listbox1.items.count; end; form1.ListBox1.Items.endUpdate; end; mfg Ändy |
Re: Viele Items in eine Listbox adden - simultan zur Berechn
Probier die Tipps mal aus:
![]() |
Re: Viele Items in eine Listbox adden - simultan zur Berechn
naja vielen Dank mal... aber bringt nicht wirklich was...
welche alternativen gitb es denn zu einer Listbox???? ich brauch halt eine Möglichkeit viele ( >1.000.000 ) Lösungsschritte aufzulisten ... MFG Ändy |
Re: Viele Items in eine Listbox adden - simultan zur Berechn
Wie gesagt nicht direkt in die Listbox einfügen
|
Re: Viele Items in eine Listbox adden - simultan zur Berechn
@ mkinzler
aber wie kann ich das anstellen? MFG Ändy |
Re: Viele Items in eine Listbox adden - simultan zur Berechn
Die Einträge einer lokalen Stringliste hinzufügen und diese dann an die ListBox-Eintrage anhängen
|
Re: Viele Items in eine Listbox adden - simultan zur Berechn
hallo,
ok, hab jetzt eine Stringlist erstellt und die Elemente in dieser Gespeichert. allerdings, wenn ich diese in eine Listbox laden will, dann kommt Zitat:
vielen Dank bisher für die Hilfe :thumb: MFG Ändy |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:47 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 by Thomas Breitkreuz