Hallo Zusammen,
ich nutze einen WebService um bestimmte Dateien herunterzuladen.
Alles funktioniert einwandfrei. Nach dem Download möchte ich die Objekte Aufräumen und bekomme die
Exception "Ungültige Zeigeroperation"
Es sind genau 35 Files zum Donwloaden.
Das Objekt FileListResponse ist eine Klasse geerbt von TRemotable. Sie beinhaltet eine Array of DataFiles welches ebenfalls eine Klasse geerbt von TRemotable ist. Das Objekt FileListResponse beinhaltet also ein Array mit 35x DataFile Objekte.
Wenn ich versuche die einzelnen DataFiles Objekte des Array per Free freizugeben, knalts. Versuche ich FileListResponse.free knalts ebefalls jeweils der Obengenannten Fehlermeldung.
Wenn ich in der Projektdatei die Zeile einbaue um Speicher Leaks zu entdecken bekomme ich genau 1x FileListResponse und 35x DataFile
ReportMemoryLeaksOnShutdown := DebugHook <> 0;
In diesem Beitrag
https://stackoverflow.com/questions/...-services-call
Ist beschrieben dass TRemotable selbst den Speicher aufräumt wenn das Objekt data-context vorhanden ist. Bei ist es jedoch nil zum Zeitpunkt des Löschens.
Auch in der Hilfe zu "
Soap.InvokeRegistry.TRemotable" steht dass die Objekte selbst bereinigt werden.
Das gleiche Problem ist auch bei dem Video Tipp #8 Delphi
SOAP/
WSDL von Mathias Eißing.
Hier geht es um das abrufen einer BLZ. Auch hier bleiben irgend welche Objekte bestehen.
https://www.youtube.com/watch?v=PLOfjr0ocHQ
Hat jemand eine Idee wie man die Objekte eines Web Services sauber entsorgen kann oder wie man den Müllsammler aktiviert?
Gruß Kostas