![]() |
Exception in Tlist
Tach an alle
ich kann mir die Fehler nicht erklären. in Abwechslung kommen die Exception 1 und 3. was mache ich falsh..!?
Delphi-Quellcode:
procedure TClientClass.PDellLogOutFromDownLoadQueue;
var i, n : integer; TempKon : PTKontakt; tempFile : PTDFile; begin try for i:=0 to Download.Count - 1 do begin if (TDFile(Download.Items[i]^).StatusQueue = cLogOut) then begin //loschen alle verbindungen for n := 0 to TDFile(Download.Items[i]^).From.Count - 1 do begin try TKontakt(TDFile(Download.Items[i]^).From.Items[n]^).Verbindung.Free; tempKon := PTkontakt(TDFile(Download.Items[i]^).From.Items[n]^); Dispose(TempKon); TDFile(Download.Items[i]^).From.Delete(n); except on e : Exception do showmessage('Exceptio on TClientClass.PDellFileFromDownLoadQueue 1 ' + e.Message); end; // try -except end; // for n try TempFile := Download.Items[i]; Dispose(TempFile); Download.Delete(i); except on e : Exception do Showmessage('PDellFileFromDownLoadQueue 2 ' + e.Message); end; // try -except end; // if end; // for i except on e : Exception do Showmessage('PDellFileFromDownLoadQueue 3 ' + e.Message); end; end; |
Re: Exception in Tlist
Durch das Entfernen der Elemente mit der Delete-Methode verkleinerst Du die Liste. Somit greifst Du auf nicht mehr vorhandene Listenelemente zu.
Lasse einfach beide Schleifen rückwärts laufen. Gruß Hawkeye |
Re: Exception in Tlist
:cyclops: Das hilft...!?
|
Re: Exception in Tlist
Ja, weil Du dann immer die Elemente freigibst, die Du in den folgenden Schleifendurchläufen nicht mehr benötigst.
Bei Deiner Lösung ist das nicht so. Stelle Dir eine Liste mit 10 Elementen vor, dann läuft Deine Schleife von 0 bis 9. Beim ersten Durchlauf entfernst Du das erste Element, die Liste enthält dann nur noch 9 Elemente (Index 0 bis 8). Im letzten Durchlauf möchtest Du dann auf das Element mit der Nummer 9 zugreifen. Crash! Gruß Hawkeye |
Re: Exception in Tlist
Danke für die Antwort, es hat geholfen.))) :spin2:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz