Jepp, wenn Du Zeilen löschen willst, muss die Zählvariable rückwärts laufen.
Delphi-Quellcode:
For lcount2 := highcount-1 downto 0 do //andersherum
begin
mzwvar2 := memo1.Lines[lcount2];
if mzwvar = mzwvar2 then memo1.Lines.Delete(lcount2);
end;
[edit] Erklärung: Die "Laufvariable" wird
einmalig gesetzt.
for i := 0 to highcount - 1 do
Angenommen, es gibt 10 Einträge: Startwert ist 0, Endwert ist 9. Wenn Du zwischendurch Einträge löschst, wird der Endwert
nicht aktualisiert, d.h. die Schleife läuft trotzdem weiter. Es genügt also, einen einzigen Eintrag zu löschen, dann kracht es am Schleifenende.[/edit]