Hallo $ebbi,
außer dem schon Genannten (Variable darf nicht string heißen), funktioniert auch die Zählschleife nicht, da zu Beginn der Schleife der Endwert ermittelt wird. Löschst Du einen Eintrag, so ändert sich die Zahl der Einträge, jedoch nicht der Endwert der Schleife. Besser ist eine endprüfende Schleife, z.B.
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| x := 0; repeat k:=listbox1.Items.Strings[x]; if k[length(k)] = 'p' then listbox1.Items.Delete(x) else inc(x); until x>Listbox1.items.Count - 1; |
x wird nur dann erhöht, wenn der String nicht gelöscht wurde. Andernfalls überspringst Du Einträge.
Beste Grüße
Mathematiker