Forum: Object-Pascal / Delphi-Language
Delphi
by Uwe Raabe,
13. Jan 2012
Der saubere Weg seit D2010 ist as: http://docwiki.embarcadero.com/RADStudio/XE2/de/Interface-Referenzen#Umwandeln_von_Interface-Referenzen_in_Objekte
Aber auch Sir Rufo's Methode geht:
Forum: Object-Pascal / Delphi-Language
Delphi
by Uwe Raabe,
13. Jan 2012
Wenn du dir mal die Implementation von TInterfacedObject ansiehst, kannst du sehen, wie in NewInstance der RefCount auf 1 gesetzt wird und in AfterConstruction wieder um 1 verringert wird. Wenn also nicht innerhalb des Create ein implizites _AddRef erfolgt, ist der RefCount nach dem Create wieder 0. Das muss auch so sein, da er sonst ja nie mehr auf 0 kommen könnte und die Instanz nicht mehr...