@ngott2
Du darfst auch nicht folgendes machen:
Delphi-Quellcode:
procedure DoIt(Intf: IInterface);
begin
end;
...
DoIt(TMyClass.Create); // falsch!
...
var
tmpIntf: IInterface;
tmpIntf := TMyClass.Create;
DoIt(tmpIntf); // korrekt
In der ersten Variante kommt auch die Referenzzählung durcheinander.
Das ist etwas unschön und man muss das erst mal wissen.
Aber wenn man das beachtet, kann man damit schon vernünftig leben.
Ich arbeite inzwischen nur noch mit Interfaces und verstecke die Klassen hinter einer Factory. Dann kann man solche Probleme grundsätzlich ausschließen.