Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Speicherverwaltung bei Objekten und einem verweis (https://www.delphipraxis.net/133932-speicherverwaltung-bei-objekten-und-einem-verweis.html)

Jackie1983 12. Mai 2009 12:00


Speicherverwaltung bei Objekten und einem verweis
 
Servus,

habe eine Objectlist wo alle meine Objekte entahlten sind.
Wenn ich jetzt irgend wo ein Objekt brauche, zum Beispiel in einem Grid, speicher ich das Objekt im Grid ab.

Delphi-Quellcode:
Type
  TMyList = TObjectlist;
  TMyObject = class(TObject)
   //meine daten
  end;

Procedure Load;
var
  MyObject : TMyObject;
begin
  MyObject := TMyObject.create;
  MyObject.bla := 'bla';
  MyList.add(MyObject);
end;
und wenn ich es im Grid brauche
Delphi-Quellcode:
Procedure AddGrid;
var
  obj : TMyObject;
begin
  obj := MyList.item[i];
  Grid.objects[x, y] := obj;
end;
Vorteil ich brauche nicht mehr in der Liste zusuchen, sondern habe das Objekt direkt im Grid.
Wenn ich das Grid leere gebe ich ja nicht das Objekt frei sondern weise nur Grid.objects[x, y] := nil zu mehr nicht.

Aber vom speicher her müste das doch kein Problem sein.
Also wenn ich meine Liste lösche müste auch der angelegte Speicher wieder komplett frei sein, oder?
Nicht das ich mir hier einen Speicherfresser züchte.

Mfg

sirius 12. Mai 2009 12:01

Re: Speicherverwaltung bei Objekten und einem verweis
 
alles soweit ok

mkinzler 12. Mai 2009 12:04

Re: Speicherverwaltung bei Objekten und einem verweis
 
Schau dir mal die Eigenschaft TObjectList.OwnsObjects an

Jackie1983 12. Mai 2009 12:08

Re: Speicherverwaltung bei Objekten und einem verweis
 
Zitat:

Zitat von mkinzler
Schau dir mal die Eigenschaft TObjectList.OwnsObjects an

Ne das ist ok, dann werden die Objekte die ich in der Liste habe auch freigegeben.
Aber ich meine ja wenn ich die Objekte wie oben im Grid hinterlege.
Aber so wie sirius das schon geschrieben hat, kann ich es ja so machen...

thx

PMM 12. Mai 2009 13:47

Re: Speicherverwaltung bei Objekten und einem verweis
 
Sorry - hatte nicht gesehen dass die Instanzen in der ObjectList gepflegt werden.
--> Auswischen:
Machen kannst du das so, aber woher soll den das Löschen der Objekt-Instanzen in deinem Grid kommen? Beim Zuweisen von NIL passiert das jedenfalls nicht, da wird nur der Zeiger überschrieben - die Instanz bleibt erhalten.
<--
PMM


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:39 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz