var
  ParentNode: TTreeNode;
begin
  ParentNode := TreeView1.Selected.Parent;
while Assigned(ParentNode.Parent) do
  ParentNode := ParentNode.Parent;
ShowMessage(ParentNode.Text); 这段程序可得到任何子接点的第一层根接点的内容,但当我选择第一层接点的时候会出现错误,应该怎么来解决呢?

解决方案 »

  1.   

    加进去
    if  TreeView1.selected.level = 0 then
      begin
        ShowMessage(TreeView1.selected.Text); 
        exit;
      end;
      

  2.   

    while Assigned(ParentNode.Parent) do
    改为
    while ParentNode.Parent <> nil do
      

  3.   

    var
      ParentNode: TTreeNode;
    begin
      ParentNode := TreeView1.Selected.Parent;
      while Assigned(ParentNode.Parent) do
               if ParentNode <> nil then  
                  ParentNode := ParentNode.Parent;
    ShowMessage(ParentNode.Text);