<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">2013/9/30 Sven Barth <span dir="ltr"><<a href="mailto:pascaldragon@googlemail.com" target="_blank">pascaldragon@googlemail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">

<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div class="h5">
However, this does not work, because it seems that I cannot make any<br>
generic method virtual!  In TIntTree, I have to write:<br>
<br>
function TIntTree.DoClone: TIntTree;<br>
<br>
As it is not possible to write TTree outside of the generic definition.<br>
</div></div></blockquote>
<br>
This should do it:</blockquote><div> </div><div class="gmail_default" style="font-family:courier new,monospace">Right, this worked. My last question for this issue: is the TSelfType a 2.6.2 workaround, or it is required even in 2.7.1? I mean, how about this:<br>

<br></div><div class="gmail_default" style="font-family:courier new,monospace">=== code ===<br></div><div class="gmail_default" style="font-family:courier new,monospace">type<br></div><div class="gmail_default" style="font-family:courier new,monospace">

  generic TTree = class<br></div><div class="gmail_default" style="font-family:courier new,monospace">  protected<br></div><div class="gmail_default" style="font-family:courier new,monospace">    procedure DoClone(aNode: TTree); virtual;  //<<-- instead of TSelfType<br>

</div><div class="gmail_default" style="font-family:courier new,monospace">  end;<br></div><div class="gmail_default" style="font-family:courier new,monospace">  TIntTree = class(specialize TTree<Integer)<br></div><div class="gmail_default" style="font-family:courier new,monospace">

  protected<br></div><div class="gmail_default" style="font-family:courier new,monospace">    procedure DoClone(aNode: TTree); override; //<<-- instead of TSelfType</div><div class="gmail_default" style="font-family:courier new,monospace">

  end;<br></div><div class="gmail_default" style="font-family:courier new,monospace">=== end code ===<br><br></div><div class="gmail_default" style="font-family:courier new,monospace">In another word, use "TTree" to represent any of its specialization and their descendants. Is it possible in 2.7.1 or later?<br>

<br>Thanks a lot.<br><br></div><div class="gmail_default" style="font-family:courier new,monospace">Xiangrong<br></div><div class="gmail_default" style="font-family:courier new,monospace">  <br></div></div></div></div>