<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">What should work is the following (now with generics again):<br>


<br>
=== code begin ===<br>
<br>
type<br>
  TTree<T> = class<br>
  private type<br>
    TSelfClass = class of TTree;<br>
  public<br>
    function Clone: TTree;<br>
  end;<br>
<br>
function TTree.Clone: TTree;<br>
begin<br>
  Result := TSelfClass(Self.ClassType).<u></u>Create(Data, FParent);<br>
  (* ... *)<br>
end;<br>
<br></blockquote><div><div class="gmail_default" style="font-family:courier new,monospace;display:inline">​After change to this code in Clone(), I got this error:<br><br>​</div> <div class="gmail_default" style="font-family:courier new,monospace;display:inline">

​tree.pas(66,60) Error: Incompatible type for arg no. 2: Got "TIntTree.TTree$LongInt", expected "TTree"<br>​<br></div></div></div></div></div>