![]() |
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:
und wenn ich es im Grid brauche
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;
Delphi-Quellcode:
Vorteil ich brauche nicht mehr in der Liste zusuchen, sondern habe das Objekt direkt im Grid.
Procedure AddGrid;
var obj : TMyObject; begin obj := MyList.item[i]; Grid.objects[x, y] := obj; end; 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 |
Re: Speicherverwaltung bei Objekten und einem verweis
alles soweit ok
|
Re: Speicherverwaltung bei Objekten und einem verweis
Schau dir mal die Eigenschaft TObjectList.OwnsObjects an
|
Re: Speicherverwaltung bei Objekten und einem verweis
Zitat:
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 |
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 20:48 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