22. juni 2012 - 01:31Der er
2 kommentarer og 1 løsning
Hvor meget skal jeg .free?
Jeg har et object af typen: type TPicInfoClass = class filename: string; ext : string; caption : string; comment : string; filedataraw : TMemoryStream; end;
Og aå har jeg en list af disse objecter: ListOfFiles: TList;
Efter at have lavet tmpPicInfoClass := TPicInfoClass.Create; tmpPicInfoClass.ext := '.zzz'; tmpPicInfoClass.filedataraw := CreateBlobStream(somefield); (osv.) så tilføjer jeg den til min liste: ListOfFiles.Add(tmpPicInfoClass);
Mit spørgsmål er så, hvor meget er jeg nødt til at .free?
Er det nok bare med ListOfFiles.free eller skal jeg løbe listen i gennem og .free hvert enkelt object? Og skal jeg også særskilt .free TMemoryStream?
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Det object skal override destroy og i den free'er du memorrstrem og andre classer du har i dit object. Og hvis du bruger TList skal du selv ryde op, du kan også vælge en TOwnedList den fjerner selv sine objecter
Ok, så nu har jeg tilføjet: destructor TPicInfoClass.Destroy; begin inherited; Filedataraw.Free; end;
Og så løber jeg bare min liste igennem: procedure TfrmVisFiler.DestroyFileList; var i:integer; begin for i := 0 to ListOfFiles.Count-1 do begin TPicInfoClass(ListOfFiles.Items[i]).Free; end; ListOfFiles.Free; end;
Tak for hjælpen begge to. Smid et svar Arne.
God weekend.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.