Ich möchte Dir noch bei Deinen Untersuchungen einen Tipp resp. Warnung mitgeben: Die Arbeit mit Interfaces kann sich zu einem Albtraum entwickeln, weil je nach Implementierung die Freigabe der Objekte variiert und automatisch durch Delphi vorgenommen werden kann.
Hier hilft Dir ein Framework wie das schon erwähnte Delphi-Spring und kann Dir in der Folge sehr viel Frust abnehmen. Auf jeden Fall solltest Du in deiner
dpr aktivieren:
Delphi-Quellcode:
begin
ReportMemoryLeaksOnShutdown := DebugHook <> 0;
Application.Initialize;