<br><br><div class="gmail_quote">On Sat, Jan 15, 2011 at 6:30 PM, Andrew Haines <span dir="ltr"><<a href="mailto:AndrewD207@aol.com">AndrewD207@aol.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

<div><div></div><div class="h5">On 01/14/11 14:38, Torsten Bonde Christiansen wrote:<br>
> Hi List.<br>
><br>
> Is it possible to jump a couple of levels in the inherited hierarchy<br>
> when calling "inherited" on a method?<br>
><br>
> A small example of what i'm trying to achieve below (and don't mind the<br>
> incomplete TB class implementation).<br>
><br>
> Kind regards,<br>
> Torsten Bonde Christiansen.<br>
><br>
> ============================<br>
><br>
> TA = class<br>
>   procedure DoSomething; virtual;<br>
> end;<br>
><br>
> TB = class(TA)<br>
>   procedure DoSomething; override;<br>
> end;<br>
><br>
> TC = class(TB)<br>
>   procedure DoSomething; override;<br>
> end;<br>
><br>
> .....<br>
><br>
> procedure TA.DoSomething;<br>
> begin<br>
>   ...<br>
> end;<br>
><br>
> procedure TC.DoSomething;<br>
> begin<br>
>   inherited TA.DoSomething;  // This is not correct, but exemplifies<br>
> what i'm trying to achieve.<br>
> end;<br>
><br>
<br>
</div></div>I *think* I've done this before this way but test it to make sure it works:<br>
<br>
procedure TC.DoSomething:<br>
begin<br>
 (Self as TA).DoSomething;<br>
end;<br>
<br></blockquote></div><br>The same vmt (virtual method table) used, so no matter how you call it, the addresses point to new methods. <br><br>Max<br>