anchor.diff:      Anchors := [anLeft,anBottom];
       Checked := True;
       FontDesc := '#Label1';
  +    Hint := '';
       TabOrder := 1;
       Text := 'Show images';
       OnChange := @cbShowImagesChange;
  
positive.code:   inherited AfterCreate;
    {@VFD_BODY_BEGIN: MainForm}
    Name := 'MainForm';
    SetPosition(294, 174, 300, 250);
    WindowTitle := 'Treeview Test';
    WindowPosition := wpScreenCenter;
  
    tree := TfpgTreeView.Create(self);
  
negative.code:     n2.AppendText('Child 1').AppendText('Child 2');
      n2.Collapsed := False;
    end;
  
    TreeNodeChanged(nil);
  end;
  
  procedure TMainForm.btnSourceClicked(Sender: TObject);
  begin
    FSrcNode := tree.Selection;
    if Assigned(FSrcNode) then
      lblSource.Text := FSrcNode.Text
    else
      lblSource.Text := '--';
  end;
  
  procedure TMainForm.btnDestinationClicked(Sender: TObject);
  begin
    FDestNode := tree.Selection;
    if Assigned(FDestNode) then
      lblDestination.Text := FDestNode.Text
    else
      lblDestination.Text := '--';
  end;
  
  procedure TMainForm.btnMoveToClicked(Sender: TObject);
  var
    i: integer;
  begin
    if FSrcNode = FDestNode then
    begin
      ShowMessage('Source and Destination may not be the same');
      exit;
    end;
    i := cbMoveToTypes.FocusItem;
    FSrcNode.MoveTo(FDestnode, TfpgNodeAttachMode(i)); // This cast is a hack! Do not do this in real-world apps!!
    tree.FullExpand;
    tree.Invalidate;
    // reset values
    FSrcNode := nil;
    FDestnode := nil;
    lblSource.Text := '--';
    lblDestination.Text := '--';
  
    TreeNodeChanged(nil);
  end;
  
  procedure TMainForm.TestButtonClicked(Sender: TObject);
  var
    n: TfpgTreeNode;
  begin
    n := Tree.Selection;
    n.Parent.Remove(n);
    n.Free;
    Tree.Invalidate;
  end;
  
  procedure TMainForm.cbShowImagesChange(Sender: TObject);
  