本帖最后由 lcmlhs_2005 于 2011-01-28 17:25:31 编辑

解决方案 »

  1.   

    procedure TForm1.DGAddNode(TV:ttreeview;selectnode,addnode:ttreenode);
    var
      i,selindex:Integer;
      tempnode:TTreeNode;
    begin
      selectnode:=TV.Selected;
      if selectnode=nil then exit;
      if selectnode=TV.Items.GetFirstNode then Exit;
      addnode:=TV.Items.AddChild(TreeView2.Items.GetFirstNode,'o');
      tempnode.Assign(addnode);//这里出错,我原想把tempnode的值最后赋给插入处的node呢
      for i:=0 to TV.Items.Count-1 do
      begin
        if TV.Items[i]=TV.Selected then
        begin
          selindex:=i;
          Break;
        end;
      end;
      showmessage(inttostr(selindex));
      for i:=TV.Items.Count-1 downto selindex+1 do
      begin
        TV.Items[i].Text:=TV.Items[i-1].Text;
        TV.Items[i].Data:=TV.Items[i-1].Data;
      end;
      selectnode.Text:=tempnode.Text;
      selectnode.Data:=tempnode.Data;      
    end;