O'rallY - Mi 28.08.02 13:32
Titel: Fehler bei löschen von Dateien
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| ... if ListView1.Items.Count = 0 then exit;
for i := 0 to ListView1.Items.Count - 1 do begin if DeleteFile(ListView1.Items[0].SubItems[4]) then {...SubItems[4] enthält Dateinamen (mit Pfad) } ListView1[0].Delete; end; ... |
Wenn ich diesen Code ausgeführt habe und dann irgendwann das Programm schließe erscheint folgende Fehlermeldung:
Exception EAccess Vielation .....
Ich verstehe erstens nicht warum überhaupt eine Fehlermeldung kommt (klar, sonst würd ich ja nicht posten) und zweitens versteh ich nicht, warum diese dann erst beim Schließen erscheint. Hilfe!!! :cry:
Es erscheint ebenfalls eine ähnlich Fehlermeldung wenn ich die Prozedur ein zweites mal aufrufe...
Ich glaube es ausschließen zu können, das es irgendwas mit der TListView Kompo zu tun hat.
Cashels - Mi 28.08.02 13:50
Hallo,
das Problem liegt darin dass du die Knoten deiner Listview löschst, und somit es den Index listview1.items.count-1 nicht mehr gibt. Du kannst das Problem umgehen indem du die Knoten rückwärts durchläufst:
Quelltext
1:
| for i := ListView1.Items.Count - 1 downto 0 do..... |
Gruss,
Tom