Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Problem mit Objektfreigabe (https://www.delphipraxis.net/159484-problem-mit-objektfreigabe.html)

rollstuhlfahrer 30. Mär 2011 13:29

AW: Problem mit Objektfreigabe
 
Ich denke mal, dass es gehen sollte, _Muster als
Delphi-Quellcode:
class var
unter protected einzustellen.

Bernhard

himitsu 30. Mär 2011 15:15

AW: Problem mit Objektfreigabe
 
Zitat:

Zitat von stahli (Beitrag 1091954)
Zitat:

Zitat von Suboptimierer (Beitrag 1091948)
Meines Erachtens muss sich das Objekt selbst ums aufräumen kümmern, oder der Aufrufer (in diesem Fall nicht feststellbar) oder die ultimative Lösung: der Garbage Collector.

Da kommst Du mit Delphi nicht weit. Das Thema wurde hier kürzlich angerissen.
Objekte (und Referenzen darauf) musst Du selbst auf nil setzen (oder eine Lösung selbst implementieren). Delphi macht das (leider) nicht automatisch.

Wieso soll man das nicht autoatisch hinbekommen?

> Interfaces

Suboptimierer 30. Mär 2011 15:30

AW: Problem mit Objektfreigabe
 
Die Lösung mit dem Singleton finde ich übrigens genial. Ich habe es gerade ausprobiert und komme sogar ohne globalen Schnickschnack aus.

Insgesamt sehr viele gute Anregungen. Danke.
Das reichte mir im Prinzip schon, aber wenn ihr mir gerne noch eine Lösung über Interfaces präsentieren wolltet, würde ich natürlich nicht "nein" sagen. :-D

mjustin 2. Apr 2011 09:01

AW: Problem mit Objektfreigabe
 
Delphi-Quellcode:
destructor TMuster.Destroy;
begin
  if Muster = Self then
    Muster := nil;
  inherited;
end;
Self nil zuweisen und dann den geerbten Destruktor aufrufen sieht etwas gefährlich aus :o

Michael

stahli 2. Apr 2011 09:08

AW: Problem mit Objektfreigabe
 
Das wäre nur ein gangbarer Weg, wenn Muster nie selbst eine Objektinstanz ist, sondern nur eine globale Variable, die auf ein anderes Objekt zeigt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:10 Uhr.
Seite 2 von 2     12   

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