![]() |
Listbox Maximum Überschriten
Hi
Beim Programmieren ist mir folgendes passiert: bei diesem QUelltext:
Delphi-Quellcode:
hatte ich das Problem des beim aufrufen der Procedur gemeldet wurde, das das Listbox maximum überschriten wurde.
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; das Problem habe ich gelöst, indem ich nach der Schleife eine weitere schleife eingefügt habe:
Delphi-Quellcode:
das ganze sieht also jetzt so aus:
For i:= j to Listbox1.Items.Count-1 do
Delphi-Quellcode:
Es klappt jetz auch wunderbar, aber leider verstehe ich nicht, warum, was hat die 2. Schleife jetzt geändert?
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; |
Re: Listbox Maximum Überschriten
Beim Löschen, immer von oben abwärts zählen.
|
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 02:29 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-2025 by Thomas Breitkreuz