function FindInChild(aNode: TTreeNode;aText: string):TTreeNode;
begin
  Result := nil;
  if aNode.Count = 0 then exit;
  aNode := aNode.GetFirstChild;
  while (aNode <> nil) do
  begin
    if aNode.Text=aText then
    begin
      Result := aNode;
      Break;
    end;
    Result := FindInChild(aNode,aText);
    if Result<>nil then Break;
    aNode := aNode.getNextSibling;
  end;
end;

解决方案 »

  1.   

    你看看这个没用递归的,保证效果最佳。呵呵var
      ind:integer;
      lev:integer;
      i:integer;
    begin
      ind:=treeview1.Selected.AbsoluteIndex;
      lev:=treeview1.selected.level;
      for i:=ind+1 to treeview1.items.count-1 do
      begin
        listbox1.items.add(treeview1.items[i].text);
        if treeview1.items[i].Level=lev then
        break;
      end;
    end;
      

  2.   

    我只要返回子結點的值text就好了.
      

  3.   

    這個問題害我搞了兩天,在forgot(让一切随风) 大俠的幫助下終於搞定.