Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Objektfreigabe bei Interface (https://www.delphipraxis.net/160100-objektfreigabe-bei-interface.html)

martin_ 27. Apr 2011 14:18

Delphi-Version: 2006

Objektfreigabe bei Interface
 
Hallo,
ich verwende ein
Delphi-Quellcode:
IAuto = Interface(IInterface)
und
Delphi-Quellcode:
TAuto = class(TInterfacedPersistent,IAuto)
und
Delphi-Quellcode:
Form = class(TForm)
.
In der Form
Delphi-Quellcode:
myIAuto = IAuto;
myTAuto = TAuto
wird das Interface mit
Delphi-Quellcode:
myTAuto := TAuto.create;
myIAuto := myTAuto;
erzeugt und mit
Delphi-Quellcode:
myIAuto := nil;
myTAuto.free;
freigegeben.
Der Code funktioniert auch.
Leider funktioniert bei der Abkürzung mit
Delphi-Quellcode:
myIAuto := TAuto.create;
und
Delphi-Quellcode:
myIAuto := nil;
die Freigabe von TAuto nicht.
Bei der Verwendung von TInterfacedPersistent muss ich mich selbst um die Freigabe der Objekte kümmern. TInterfacedObject würde das für mich erledigen. Dh. gibt es sonst eine Möglichkeit, wenn das Interface "freigegeben" wird das sich auch die Objekte automatisch freigeben.

Bummi 27. Apr 2011 15:43

AW: Objektfreigabe bei Interface
 
Du hast doch die jeweiligen Vorteile/Nachteile von
TInterfacedPersistent/TInterfacedObject bereits beschrieben.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:53 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