Einzelnen Beitrag anzeigen

DelTurbo

Registriert seit: 12. Dez 2009
Ort: Eifel
1.194 Beiträge
 
Delphi 2007 Architect
 
#1

SetLength(DynArray,0) gibt den speicher nicht frei

  Alt 6. Mär 2020, 14:15
Delphi-Version: 2007
Hi,
ich habe ein Problem. Ich habe einen Record der wie folgt aussieht.
Delphi-Quellcode:
type
  tEmailData = record
    InUse :Boolean;
    ID :Integer;
    HTML :TStringList;
    TXT :TStringList;
    Subject :String;
    SendName :String;
end;
var
  EMailData :array of tEmailData;
Ich setze die länge mir z.b. SetLength(EMailData,100). Wenn ich den nicht mehr brauche möchte ich den Speicher wieder frei haben. Ich durchlaufe dann erst eine Schleife und gebe die TStringList mit .Free wieder frei. Danach mache ich ein SetLength(EMailData,0).

Leider bleibt der speicher belegt. Auch ein EMailDatat:=nil hilft nicht weiter. Belege ich mit z.b. SetLength(EMailData,50) wird neuer Speicher genommen.

Was mache ich falsch. Ich suche schon im Netz 2 Tage lange. Ebenfalls hier im Forum. Ich bekomme es nicht hin das der Speicher wieder freigeben wird.

Vielen Dank im voraus
Alle meine Rechtschreibfehler sind Urheberrechtlich geschützt!!
  Mit Zitat antworten Zitat