Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
Delphi 10 Seattle Enterprise
|
AW: TInterfacedObject wird nicht freigegeben
18. Mär 2014, 11:20
Delphi-Quellcode:
var YourObject : ...;
if YourObject.Type.BeginsWith.I then
Object := nil;
if YourObject.Type.BeginsWith.T then
Object.Free;
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
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
|