![]() |
Re: Listenindex überschreitet das Maximum (9).
Zitat:
Zitat:
|
Re: Listenindex überschreitet das Maximum (9).
Zitat:
Delphi-Quellcode:
:warn: dürfte übrigens für große Texte schneller sein, als
i := 0;
while i < ListBox1.Items.Count do if ListBox1.Items[i] = schueler.Text then ListBox1.Items.Delete(i) else Inc(i);
Delphi-Quellcode:
weil, IndexOf immer wieder vom Anfang an durchsucht.
with ListBox1.Items do
Delete(IndexOf(schuler.text)); Aber das nur so nebenbei... :roteyes: |
Re: Listenindex überschreitet das Maximum (9).
Moin!
Warum das andere mit der While Schleife auch Murks ist? Ganz einfach: For und While Schleifen holen sich vor dem Eintritt in die Schleife die Werte für die Bedingung nur einmalig und aktualisieren sie nicht mehr beim Durchlauf. Daher kommt es zu dem Fehler. Wenn man Glück hat, tritt dies bei einer While Schleife nicht auf, weil die Optimierung des Compilers dort was anderes draus macht - dem kann man sich aber nie sicher sein. Man kann übrigens zu den hier geposteten While Schleifen auch alternativ eine For Schleife nehmen, nur man muss sie rückwärts durchlaufen:
Delphi-Quellcode:
MfG
For i := ListBox1.Items.Count-1 DownTo 0 Do
If ( ... ) Then ListBox1.Items.Delete(i); Muetze1 |
Re: Listenindex überschreitet das Maximum (9).
So, und damit die Liste der (an der Frage völlig vorbei) Schleifen voll ist: :mrgreen:
Delphi-Quellcode:
repeat
ListBox1.Items.Delete(0); until ListBox1.Items.Count = 0; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:50 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