title: How array type assignment works?
body: <p>I have the following code:</p>
  
  <pre><code>type
    PSuperListItem = ^TSuperListItem;
    TSuperListItem = record
      SubItems  : array of String;
      Marked    : Boolean;
      ImageIndex: Integer;
    end;
  
    TSuperListItems = array of PSuperListItem;
  
    TMyList = class(TCustomControl)
    public
     Items, ItemsX : TSuperListItems;
     procedure SwapItemLists;
    end;
  
  procedure TMyList.SwapItemLists;
  var tmp:TSuperListItems;
  begin
   tmp:=Items; Items:=ItemsX; ItemsX:=tmp;
  end;
  </code></pre>
  
  <p>I want to know if I've done correctly the assingtions from <code>SwapItemLists</code>. What happends when I assign <code>Items</code> to <code>tmp</code> ? Will be created a new copy of <code>Items</code> or will be passed just the pointer of that variable ?</p>