<p>Am 15.07.2015 06:07 schrieb "David Emerson" <<a href="mailto:dle3ab@angelbase.com">dle3ab@angelbase.com</a>>:<br>
[snip]<br>
> constructor t_fancy_class.create;<br>
>   begin<br>
>     inherited;<br>
>     f_hook := t_foo_base.create;<br>
>   end;<br>
><br>
> destructor t_fancy_class.destroy;<br>
>   begin<br>
>     t_foo_base(f_hook).free;<br>
>     inherited;<br>
>   end;<br>
[snip]</p>
<p>Not related to your problem, but important nevertheless: you don't need to free interface variables. They are reference counted an freed automatically at least if you don't mix a class reference (in your case to t_foo_base) and interface reference (in your case i_foo) which you shouldn't do anyway (and which you aren't doing in your example).</p>
<p>I haven't work with delegation much, but you could try to do "(fc as i_foo).foo;". Also you might want to take a look at TAggregatedObject.</p>
<p>Regards,<br>
Sven</p>