Entwickler-Ecke
Sonstiges (Delphi) - Löschproblem
sunday_2 - Fr 15.11.02 14:39
Titel: Löschproblem
Hi,
ich habe folgendes Problem: Ich möchte den Inhalt einer ComboBox löschen. Allerding weiß ich vorher nicht wieviel Einträge sie hat. Ich habe folgenden Code eingegeben.
Quelltext
1: 2: 3:
| for i:=0 to 26 do begin combobox_zahl.items.Delete(i); |
Nun wird allerdings immer nur die Hälfte der Einträge gelöscht. ????
Woran liegt das???
wwerner - Fr 15.11.02 15:02
weil wenn i 14 ist es keine 14. Element mehr gibt?
Keldorn - Fr 15.11.02 15:04
Hallo
Bsp: ide Liste enthält: Item0,Item1,Item2,Item3,Item4
Damit löschst du im ersten durchlauf item0
Dann steht in der liste Item1,Item2,Item3,Item4,...
Dann erhöhst du den durchlaufzähler um 1 auf 1 und löschst damit item2
damit überspringste immer einen eintrag
Usw ...
Lösung: in der Schleife bei delete nicht I, sondern eine feste Zahl einsetzen (0), hilfreich ,wenn du nicht alle, sondern nur eine bestimmte anzahl löschen willst.
oder mal die methode clear von items anschauen
edit: du solltest auch in der schleife eher combobox.items.count-1 verwenden
Mfg Frank
sunday_2 - Fr 15.11.02 15:15
Danke!
:lol:
Udontknow - Fr 15.11.02 16:24
Zusatz: Manchmal löscht man ja auch noch nach bestimmten Kriterien (z.B: jedes ungerade Element löschen). Dann ist es sinnvoll, einfach die Schleife rückwärts durchzugehen:
Quelltext
1: 2:
| for i:=Items.Count-1 downto 0 do if i mod 2=0 then Items.delete(i) |
Cu, :)
Udontknow
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!