相关文章推荐
  • _pNodeData := VST.GetNodeData(PVN);
  • if Assigned(_pNodeData) then
  • ShowMessage(_pNodeData.Name);
  • PVN := VST.GetNextSibling(PVN);
  • *遍历所有节点:

    Delphi代码 收藏代码
  • VST.IterateSubtree(nil,VSTIterateProc,nil,[]);
  • procedure TForm1.VSTIterateProc(Sender: TBaseVirtualTree;
  • Node: PVirtualNode; Data: Pointer; var Abort: Boolean);
  • _pNodeData:PTagCustomListItem;
  • begin
  • _pNodeData := Sender.GetNodeData(Node);
  • if Assigned(_pNodeData) then
  • ShowMessage(_pNodeData.Name);
  • *增加根节点:

    Delphi代码 收藏代码
  • _count := VST.RootNodeCount ;
  • VST.RootNodeCount := _count + 1;
  • *增加子节点:

    Delphi代码 收藏代码
  • _count: Cardinal;
  • begin
  • // add as child
  • _count := VST.ChildCount[VST.FocusedNode];
  • VST.ChildCount[VST.FocusedNode] := _count + 1 ;
  • VST.Expanded[VST.FocusedNode] := True;
  • VST.InvalidateToBottom(VST.FocusedNode);
  • *另一种添加节点方法:

    Delphi代码 收藏代码
  • procedure TForm1.FormCreate(Sender: TObject);
  • Data:PTagCustomListItem;
  • RootNode:PVirtualNode;
  • begin
  • //清除所有Node
  • VirtualStringTree1.Clear;
  • //指定VitrualStringTree有幾個Node
  • //VirtualStringTree1.RootNodeCount := 2;
  • //將所定義的結構大小指定給VitualStringTree
  • VirtualStringTree1.NodeDataSize := SizeOf(TTagCustomListItem);
  • //添加节点
  • RootNode:= VirtualStringTree1.AddChild(nil);
  • Data:=VirtualStringTree1.GetNodeData(RootNode);
  • Data^.Name:= '根结点';
  • RootNode:= VirtualStringTree1.AddChild(nil);
  • Data:=VirtualStringTree1.GetNodeData(RootNode);
  • Data^.Name:= '根结点aaa';
  • *必须的回调函数:

    Delphi代码 收藏代码
  • procedure TForm1.VSTGetText(Sender: TBaseVirtualTree; Node: PVirtualNode;
  • Column: TColumnIndex; TextType: TVSTTextType; var CellText: WideString);
  • _pNodeData:PTagCustomListItem;
  • begin
  • _pNodeData := Sender.GetNodeData(Node);
  • if Assigned(_pNodeData) then
  • CellText := _pNodeData.Name;
  • procedure TForm1.VSTInitNode(Sender: TBaseVirtualTree; ParentNode,
  • Node: PVirtualNode; var InitialStates: TVirtualNodeInitStates);
  • _pNodeData:PTagCustomListItem;
  • begin
  • _pNodeData := Sender.GetNodeData(Node);
  • if Assigned(_pNodeData) then
  • _pNodeData.Name := Format( 'Node Level:%d, Index:%d ',[Sender.GetNodeLevel(Node),Node.Index]);
  •  
    推荐文章