---A
     |——B
          |——C
               |——D
                    |——E
                         |..........
例如:我选择了“D”,那么我想得到“D”上级节点A,B,C,如何处理?

解决方案 »

  1.   

    ok,我刚好前几天做了这个!
    Label4.Caption:=copy(tree.Selected.Parent.Text,8,lenp);
    其中我是把父接点的值赋值给label4.caption
    lenp:integer; //得到选定结点的父结点的字符长度
    我把treeview改名为tree了。
    知道了么?你可以这样写:
    label4.caption:=treeview.Selected.Parent.Text;
      

  2.   

    可以.我在我程序里实现了的.
    procedure Tlogin_peizhi.FormCreate(Sender: TObject);
    var
       curID,nodeTxt:string;
       level1,level2:integer;
       mynode:array[0..3] of TTreenode;
    begin   //初始化变量
       Screen.Cursor:=crHourGlass;
       tree.Enabled:=True;
       tree.Items.Clear;
       level1:=0 ;
       level2:=0 ;
       tree.items.clear;
    //设置根节点
       mynode[0]:=tree.items.add(Tree.Topitem,'510000-四川省');
      // mynode[level].ImageIndex:=1;
    //遍历数据表,利用编码字段记录排序规律,依次添加树节点
         with adotable1 do
           begin
          try
          if not Active then open;
            first;
             while not Eof do
              begin
                level1:=strtoint(copy(FieldByName('行政区编号').AsString,5,2));
                level2:=strtoint(copy(FieldByName('行政区编号').AsString,3,4));
                curID:=trim(FieldByName('行政区编号').AsString);
                nodeTxt:=curID+'-'+trim(FieldByName('行政区').AsString);
               if (level1=0) and (level2<>0) then
                 begin
                  //增加下一节点时,用添加子节点的方法可轻松实现节点间的层次关系
                  //注意:这里的父节点是用当前节点的上一级节点mynode[父节点数-1]
                  mynode[1]:=tree.items.addchild(mynode[0],nodeTxt);             end
               else if level1>0 then
                 begin
                   mynode[2]:=tree.items.addchild(mynode[1],nodeTxt);
                 end;            next;
              end;
          
            finally;
           close;
    End;
     //   mynode[0].expand(False);
        Screen.Cursor:=crDefault;我这个是从数据库里自动往treeview里加数据.而且分了两级
      

  3.   

    通过node[0],node[1],node[2]来分级别.
    你可以根据这个思路太取得上一级所有的父接点数
      

  4.   

    if Treeview1.selected=nil
    then Exit;
    vNode:=Treeview1.selected;
    while (vNode<>nil)or(vNode.parent<>nil) do
    begin
      showmessage(vNode.parent.Text)//依次显示上级节点的标题
      vNode:=vNode.parent;
    end;
      

  5.   

    procedure TForm1.btn1Click(Sender: TObject);
    var
      node: TTreeNode;
      i: Integer;
    begin
      If tv1.Selected = nil Then Exit;
      node := tv1.Selected;
      for i:= 0 to tv1.Selected.Level do
      begin
        Showmessage(node.Text);
        node := node.Parent
      end;
    end;
      

  6.   

    procedure TForm1.btn1Click(Sender: TObject);
    var
      node: TTreeNode;
      i: Integer;
      sTemp: String;
    begin
      If tv1.Selected = nil Then Exit;
      node := tv1.Selected;
      sTemp := '';
      for i:= 0 to tv1.Selected.Level do
      begin
        Showmessage(node.Text);
        sTemp := sTemp + node.Text;
        node := node.Parent
      end;
      Showmessage(sTemp);
    end;