求VirtualStringTree使用实例一个,各位大牛帮帮忙
我看到国外一个软件,效果如下图:这个“default”分组是我想实现的功能,delphi功力还不够,
官方的demo写的好复杂
希望大牛们能帮忙实现 添加删除根节点 添加删除子节点 
我自己只能仿照网上的代码 把他当成listview使用本人等级比较低 分数上限只有100分,希望各位能帮帮忙

解决方案 »

  1.   

    写个DEMO太麻烦了,你有啥问题直接问吧。
      

  2.   

    谢谢楼上回复,请看两张图的根节点的区别,
    第一张图片的根节点只有“default”一条数据 下面的子节点才有后面那些数据
    而我自己写的根节点和子节点的数据是一样多的,我希望做成第一张图的样子。
    不知这样是否清楚。
      

  3.   

    參考一下
    unit Unit1;interfaceuses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, VirtualTrees;type
    TForm1 = class(TForm)
        VirtualStringTree1: TVirtualStringTree;
        procedure VirtualStringTree1GetText(Sender: TBaseVirtualTree;
          Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
          var CellText: WideString);
        procedure FormCreate(Sender: TObject);
    private
        { Private declarations }
    public
        { Public declarations }
    end;var
    Form1: TForm1;//定义VirtualStringTree结构
    type
    PVSTNodeData = ^TVSTNode;
    TVSTNode = record
         Name: string;
         //可以继续扩展
    end;
    implementation{$R *.dfm}
    procedure TForm1.VirtualStringTree1GetText(Sender: TBaseVirtualTree;
    Node: PVirtualNode; Column: TColumnIndex; TextType: TVSTTextType;
    var CellText: WideString);
    var
    VSTNode: PVSTNodeData;
    begin
       //將Node资料读出
       VSTNode := Sender.GetNodeData(Node);
       //设定Cell的值
       CellText := VSTNode.Name;
    end;
    procedure TForm1.FormCreate(Sender: TObject);
    var
    Data:PVSTNodeData;
    RootNode:PVirtualNode;
    begin
    //清除所有Node
    VirtualStringTree1.Clear;
    //指定VitrualStringTree有幾個Node
    //VirtualStringTree1.RootNodeCount := 2;
    //將所定義的結構大小指定給VitualStringTree
    VirtualStringTree1.NodeDataSize := SizeOf(TVSTNode);//添加节点
    RootNode:= VirtualStringTree1.AddChild(nil);
    Data:=VirtualStringTree1.GetNodeData(RootNode);
    Data^.Name:='根结点';RootNode:= VirtualStringTree1.AddChild(nil);
    Data:=VirtualStringTree1.GetNodeData(RootNode);
    Data^.Name:='根结点aaa'; end;
    end.
      

  4.   

    本站也有一個demo:  http://download.csdn.net/source/1547569
      

  5.   

    你在 OnGetText 中 处理就可以了。遇到根节点时CellText='';不知道你明白了没。不明白的话将你QQ号给我发个消息。我来加你。
      

  6.   

    它为了实现高速的加载,机制是有点特别
    好像是通过getdata事件来实现取节点信息来显示的
      

  7.   

    谢谢ZyxIp,kye_jufei大牛热心帮助,也谢谢ecjtu5208,sz_haitao
    问题基本上解决了,这控件感觉非常强大,决定再深入的学习下
      

  8.   

    这个控件完全可以替换系统的LISTVIEW,TREEVIEW 。速度很好,可控性也非常好。图标,排序,编辑功能的支持
    也非常好。