我定义了一个记录类型type
  TCategoryItem = record
    Name: string[100];
    Description: string[100];
  end;
var
  CategoryItem: array[0..20] of TCategoryItem;VirtualStringTree分为两栏,我想让其中一栏显示Name,一栏显示Description。现在VirtualStringTree已经有了三个根节点
怎么把CategoryItem中的内容都添加到第二个根节点中呢?谢谢

解决方案 »

  1.   

    VirtualStringTree.GetNext(VirtualStringTree.GetFirst);
    返回的就是第二个节点。
      

  2.   

    上面的是指第一个节点下没有子节点的方法。如果第一个节点下有子节点,那么第二个根节点应该这样:
    VirtualStringTree.GetNextSibling(VirtualStringTree.GetFirst); 
      

  3.   

    您好,还有一个问题,就是我想实现选择父节点的时候,所有的子节点也要全部选上。反之亦然。
    属性已经设置了:
      TreeOptions   =>   AutoOptions   =>   toAutoTriStateTracking   =   True   
                              =>   MiscOptions   =>   toCheckSupport   =True   
    功能也正常不过我现在在窗口创建的代码中手动设置子节点的选中状态,发现父节点没有自动选中或取消,不知道应该怎么才能让父节点的状态根据子节点的状态而变。
    谢谢!
      

  4.   

    这个过程我也是手工Onchecked事件中实现的,不知道有没有自动的方法。
      

  5.   

    是加这句代码吗:
      vst1.OnChecked(nil, nil);
    可是没有用啊
      

  6.   

    再问最后一个问题:NodeDataSize是做什么用的呢?我看了帮助可是没有懂...谢谢~~
      

  7.   

    NodeDataSize是用来初始化的,建议你看看VirtualStringTree控件的DEMO吧。