各位高手大家好,小弟在用teeview控件的时候遇到了麻烦,我不知道应该怎么去动态的添加和减少里面的分项目,具体问题如下:
1:动态添加分项,比如开始的时候该空间里面什么也没有,但是我现在要实现下面的效果应该怎么做?
电器类
  |
  -电视机
  |
  -VCD
  |
 -微波炉
日常用品类
  |
   -香皂
  |
  -毛巾
我想实现类似的功能,就是我可以动态的新建第一级的新类,并且还可以在某个基类上动态的创建新的子项。
2:我在某个项上点击的时候怎么区别是点击了哪个项?
3:怎样删除特定的项?这些问题我搞了好几天也没有弄明白还请各位高手给予指点,万分感谢!!!!!!!!!

解决方案 »

  1.   

    这是从我做的程序改的。
    我的节点是从数据库调的。
    procedure TF_main.FormShow(Sender: TObject);
    var
      Node,SonNode:tTreeNode;
    begin
      treeview1.items.Clear;
      treeview1.items.BeginUpdate;
      Node:=treeview1.Items.Add(NIL,'电器类');
      Node.ImageIndex:=0;
      Node.SelectedIndex:=0;
      SonNode:=treeview1.Items.Addchild(Node,'电视机');
      SonNode.ImageIndex:=1;
      SonNode.SelectedIndex:=1;
      ...
            
      Node:=treeview1.Items.Add(Nil,'日常用品类');
      Node.ImageIndex:=3;
      Node.SelectedIndex:=3;
      treeview1.items.EndUpdate;
    end;
      

  2.   

    区分节点用:
    if treeview1.selected.text='xx' 
    或判断其父节点:
    if treeview1.selected.parent.text='xxx'
      

  3.   

    删除用treeview1.selected.delete;
    若想删除父节点下所有值用
    treeview1.selected.parent.delete;
      

  4.   

    2. 直接取treeview.Selected即可。
    3. 特定的Node.Delete;
      

  5.   

    MyNode:TTreeNode;for i:=0 to TreeView1.Items.Count-1 do
        if TreeView1.Items[i].Text='日常用品类' then
        begin
            MyNode:=TreeView1.Items[i];
            break;
        end;
    if MyNode<>nil then
        TreeView1.Items.AddChild(MyNode,'日常用品1');