anchor.diff:      procedure   DrawHeader(ACol: integer; ARect: TfpgRect; AFlags: integer); virtual;
       procedure   DoChange; virtual;
       procedure   DoExpand(ANode: TfpgTreeNode); virtual;
  +    // only visual (visible) nodes
       function    NextVisualNode(ANode: TfpgTreeNode): TfpgTreeNode;
       function    PrevVisualNode(ANode: TfpgTreeNode): TfpgTreeNode;
  +    // any next node, even if node is collapsed
  +    function    NextNode(ANode: TfpgTreeNode): TfpgTreeNode;
  +    function    PrevNode(ANode: TfpgTreeNode): TfpgTreeNode;
       // the nodes between the given node and the direct next node
       function    SpaceToVisibleNext(aNode: TfpgTreeNode): integer;
       function    StepToRoot(aNode: TfpgTreeNode): integer;
  
positive.code:     result := h^.width
    else // not found -> returns the default
      result := DefaultColumnWidth;
  end;
  
  procedure TfpgTreeview.PreCalcColumnLeft;
  
negative.code:     procedure   SetColumnWidth(AIndex, AWidth: word);
      // the width of a column - aIndex of the rootnode = 0
      function    GetColumnWidth(AIndex: word): word;
      procedure   GotoNextNodeUp;
      procedure   GotoNextNodeDown;
      property    Font: TfpgFont read FFont;
      // Invisible node that starts the tree
      property    RootNode: TfpgTreeNode read GetRootNode;
  