SelNode:= TreeView.Selected;
请问SelNode下的子节点个数的求法。(不要有‘臭虫’的,呵呵。)

解决方案 »

  1.   

    To 票票:
       SelNode.Count:是表示其子层的节点数,但子节点的子节点等等,都没包括在内。呵呵。。
      

  2.   

    遍历一遍不就可以了,靠。
    var
      Base :TTreeNode ;
      i, k :integer;
    begin
      Base :=TreeView.Selected;
      for i := 0 to TreeView.Items.Count - 1 do
        if TreeView.Items.Parent = Base then
          Inc(k);
      ShowMessage(StrToInt(k));
    end;
      

  3.   

    Linux2001(努力工作中...) : 晕~ 你的方法还不如SelNode.CountTo  benben504000(benbin) : 试试HasAsParent方法。
      

  4.   

    function GetNodeCount(Node: TTreeNode):Integer;
    var Node1,Node2: TTreeNode;
        iNode,ii: Integer;
    begin
      iNode := 0;
      Result := 0;
      for ii := 0 to Node.Count -1 do
      begin
        Node1 := Node.Item[ii];
        Inc(iNode);
        if Node1.Count > 0 then
        iNode := iNode + GetNodeCount(Node1);
        Node1 := Node1.getNextSibling;
        if Node1 = nil then
        begin
          Result := iNode;
          Exit;
        end;
      end;
    end;
      

  5.   

    function GetNodeCount(aNode: TTreeNode) : Integer;
    begin
      Result:= aNode.Count;
      if aNode.Count = 0 then Exit;
      aNode:= aNode.getFirstChild;
      while (aNode <> nil) do
      begin
        Result:= Result + GetNodeCount(aNode);
        aNode := aNode.getNextSibling;
      end;
    end;