Einzelnen Beitrag anzeigen

TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.070 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: TInterfacedObject wird nicht freigegeben

  Alt 19. Mär 2014, 15:03
Du hast da noch was vergessen
Delphi-Quellcode:
TMyClass = class( TInterfacedObject )
end;

var
  MyInstance : TMyClass;
  MyInterface : IInterface;

// das geht
MyInstance := TMyClass.Create;
MyInstance.Free;

// das knallt
MyInstance := TMyClass.Create;
MyInterface := MyInstance; // Referenz-Zähler auf 1
MyInterface := nil; // Referenz-Zähler auf 0 => Instanz wird freigeben
MyInstance.Free; // rumms
Wer sowas macht hat es auch nicht anders verdient!
  Mit Zitat antworten Zitat