Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Listbox Maximum Überschriten (https://www.delphipraxis.net/130823-listbox-maximum-ueberschriten.html)

JoFresh mit Joghurt 13. Mär 2009 19:12


Listbox Maximum Überschriten
 
Hi
Beim Programmieren ist mir folgendes passiert:
bei diesem QUelltext:
Delphi-Quellcode:
 For i:= 0 to Listbox1.Items.Count-1 do
   begin
    Name:= Listbox1.Items[i];
     If Length(Name) <> 4 then
      begin
       Listbox1.Items.Delete(i);
      end;
  end;
hatte ich das Problem des beim aufrufen der Procedur gemeldet wurde, das das Listbox maximum überschriten wurde.

das Problem habe ich gelöst, indem ich nach der Schleife eine weitere schleife eingefügt habe:
Delphi-Quellcode:
For i:= j to Listbox1.Items.Count-1 do
das ganze sieht also jetzt so aus:
Delphi-Quellcode:
For i:= 0 to Listbox1.Items.Count-1 do
  For j:= i to Listbox1.Count -1 do
   begin
    Name:= Listbox1.Items[i];
     If Length(Name) <> 4 then
      begin
       Listbox1.Items.Delete(i);
      end;
  end;
Es klappt jetz auch wunderbar, aber leider verstehe ich nicht, warum, was hat die 2. Schleife jetzt geändert?

mkinzler 13. Mär 2009 19:15

Re: Listbox Maximum Überschriten
 
Beim Löschen, immer von oben abwärts zählen.

Luckie 13. Mär 2009 19:20

Re: Listbox Maximum Überschriten
 
Um das mal zu begründen: Durch die for-Schleife legst du die Anzahl der Schleifendurchgänge fest, wenn du jetzt Eintröge löscht, hast du aber weniger Einträge als durchlaufen werden sollen.


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