Autor Beitrag
O'rallY
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 563



BeitragVerfasst: Mi 28.08.02 13:32 
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 167



BeitragVerfasst: 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:
ausblenden Quelltext
1:
 for i := ListView1.Items.Count - 1 downto 0 do.....					

Gruss,
Tom
O'rallY Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 563



BeitragVerfasst: Mi 28.08.02 15:12 
Oh, verdammt! Ist mir nicht aufgefallen. Vielen Dank!