Verlasse dich nicht allzu sehr auf die Anzeige im Taskmanager. Der MemoryManager von Delphi könnte die Speicherblöcke durchaus noch reserviert haben, um sie bei nachfolgenden Anforderungen wieder zur Verfügung zu stellen. In diesem Fall wird sich der angezeigte Wert im Taskmanager kaum ändern.
Einen Hinweis auf tatsächliche MemLeaks erhältst du, wenn du die Projektdatei folgendermaßen erweiterst:
Delphi-Quellcode:
begin
{$WARN SYMBOL_PLATFORM OFF} // <<-- diese Zeile hinzufügen
ReportMemoryLeaksOnShutdown := (DebugHook <> 0); // <<-- diese Zeile hinzufügen
Application.Initialize;
...
end.
Wenn du jetzt dein Programm in der Delphi-
IDE laufen läßt, erscheint beim Beenden eine Dialogbox mit Hinweisen auf MemLeaks, sofern welche vorhanden sind. Besonders informativ ist die Anzeige leider nicht. Sie zeigt nur an,
daß nicht alle angeforderten Speicherblöcke zurückgegeben wurden, aber nicht,
wo dies passiert. Um diese Stellen zu finden, wirst du andere Werkzeuge einsetzen müssen. In der
DP gibt es einige Threads zu diesem Thema.
Gruß Hawkeye