Hallo liebe Delphianer,
ich habe gestern zu meinem Entsetzen festgestellt das die Referenzzählung von Objekten die ein IInterface implementieren
NICHT gestartet wird wenn man sie einer Objectvariable zuweist. bzw. diese wieder freigibt...
Also
Delphi-Quellcode:
Programm bla;
uses
alles;
type
IMyinterface = Interface(IInterface)
bla
end;
TMyInterfacedObject= class(Tinterfacedobject, IMyInterface)
bla
end;
var meinObjekt: TMyInterfacedObject;
meinInterface: IMyInterface;
Begin
meinObject := TMyInterfacedobject.create;
meinInterface := TMyInterfacedobject.create;
end;
Bei Programm ende wird nur der destruktor von MeinInterface aufgerufen nicht aber der von MeinObject.
1. Wieso?
2. Kann ich das Ändern?
3. Was passiert bei Typecasts Classe zu Interface, Interface zu classe, kommt die Refernzzählung dann durcheinander?
4. ...äh..scheiße nochmal, warum geht das bei MeinObject nicht....