Einzelnen Beitrag anzeigen

Popov
(Gast)

n/a Beiträge
 
#2

AW: Listview Daten im Hintergrund suchen und Löschen

  Alt 15. Apr 2014, 04:01
Man sollte Listen niemals von unten (also bei Null beginnend) nach oben löschen, sondern immer von oben nach unten. Grund: löscht man man den Eintrag am Anfang zuerst, rutscht die Liste von oben nach unten nach, d. h. die Liste verkleinert sich und irgendwann greift man ins Leere, also außerhalb der Liste. Beispiel: man hat eine Liste mit 20 Einträgen und will einen Item irgendwo in der Mitte löschen. Das macht man mit x := 0 to 19 do . Das Problem ist, nachdem der Item (z. B. 10) gelöscht wurde, gibt es keinen Item 19 mehr, der ist jetzt 18. Trotzdem greift die Schleife irgendwann auf 19 zu. Und dann gibt es eine Fehlermeldung.

Lösung, immer von vom letzten zum ersten Item löschen, also for x := Liste.Count - 1 downto 0 do . Hier rutscht die Liste zwar auch nach unten, holt aber niemals die Schleife ein.
  Mit Zitat antworten Zitat