![]() |
Speicherfressen. Übergabe von Objekten
Servus,
habe in meiner Anwendung einen recht großen Speicherfresser. Da die Anwendung aber schon etwas größer ist, ist es schwer den Speicherfresser zufinden. Habe mal mit FastMM4 mir die Werte anzeigen lassen. Wenn ich ein Objekt erstelle wie hier
Delphi-Quellcode:
diese Objekt dann später abfrage
var
obj : TMeinObject; begin obj : TMeinObject.create; fObjectlist.add(obj); end;
Delphi-Quellcode:
muss ich doch nur obj freigeben oder? bzw. die Variable wieder leeren.
Function getObj(index : integer) : TmyObject;
begin result := fObjectlist.objects[index]; end; ... Procedure ... var obj : Tmeinobject; begin obj := GetObj(index); if obj = nil then exit; obj := nil; end; Free kann ich ja nicht aufrufen da ich das Objekt ja noch in der Liste habe... Mfg |
Re: Speicherfressen. Übergabe von Objekten
Du musst die Variable auch nicht nillen. Wie erstellst du die TObjectList?
|
Re: Speicherfressen. Übergabe von Objekten
ganz normal.
obj := TObjectlist.create; glaube das die Objecte freigegeben werden ist schon Standard true... Es kommt auch immer die Meldung AnsiString x n Weis nur nicht wie ich die ganzen Lecks finden soll.... |
Re: Speicherfressen. Übergabe von Objekten
Zitat:
![]() |
Re: Speicherfressen. Übergabe von Objekten
Zitat:
Mit diesen Methoden wird das betreffende Objekt auch gleich freigegeben wenn die Liste die Objekte verwaltet (OwnsObjects = true). Bei der Freigabe der Liste werden dann sowieso alle Objekte freigegeben. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:12 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-2025 by Thomas Breitkreuz