Hallo,
ich verwende ein
IAuto = Interface(IInterface)
und
TAuto = class(TInterfacedPersistent,IAuto)
und
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
myIAuto := TAuto.create;
und
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.