点击节点的时候自动加载,有的时候又点击了这个节点,就想加载不存在的,存在的则不再添加,怎么做

解决方案 »

  1.   

    点击时判断这个项目下是否有子项目,有就跳过
    if Treeview1.Selected.HasChildren then exit;
      

  2.   

    那你添加的时候遍历子项,已存在的就跳过
    或者加载时另外用一个StringList来保存关键字,下次加载时在这个StringList里检索是否已经存在
      

  3.   

    在程序里加个公用变量OperateID,OperateID2:String
    在TreeTV的点击事件里就加这三句
    OperateID := TreeTV.Selected.Text;
    OperateID2:= TreeTV.Selected.Child.Text;
    AddTreeView;procedure TForm.AddTreeView;
    VAR Temp,ChildTemp : TTreeNode;
        str.str1 : String;
    begin
       //如果是数据库抽的话
       while Not Eof do
          begin
            Str := xxx;//xxx是你要加的文字
            Temp := TreeTV.Items.Add(Nil,Str);
            if Str=OperateID then
            TreeTV.Selected := Temp;//这里是为了保持原点击节点再被显示用的
            while not eof do 
              begin
                str1:= xxx
                ChildTemp := ITreeTV.Items.AddChild(Temp,str1);
                if str1=OperateID2 then
                TreeTV.Selected := ChildTemp;
              end;
          end;end;应该可以解决,但我是针对数据库的,你的情况自己参考吧。