一棵树treeview,选中一个节点,怎么样得到属于这个节点下的全部叶子(也就是没有儿子的节点)

解决方案 »

  1.   

    var
      Node: TTreeNode;
    begin
      Node := TreeView1.Selected.GetNext;
      while (Node <> nil) and (Node.Level > TreeView1.Selected.Level) do
      begin
        if not Node.HasChildren then ShowMessage(Node.Text + '是一片叶子');
        Node := Node.GetNext;
      end;
    end;—————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    —————————————————————————————————
      

  2.   

    楼上的正确, 关键点为 Level 的判断及 GetNext 方法取下一结点项.
      

  3.   

    procedure GetAllNodeLeafs( tn1 : TTreeNode );
    var
     i: integer;
    begin
     if not tn1.HasChildren then begin
       //你自己的处理代码;
      end
     else for i:=0 to tn1.Count-1 do
      GetAllNodeLeafs(tn1.Item[i]);
    end;
      

  4.   

    一条SQL应该是实现不了的吧。
    除非子节点是你节点的值加某一个部分内容。
    如:父节点:10
        子节点:1001
        孙节点:100101
        。。
    建议:
    如果你现在的设计,建议一级一级的填啊。
    先填完第一级,再填第一级的所有子节点的节点。
    或者是展开时动态检测。
      

  5.   

    就是 vchoushen6(vc火神6号)的方法吧。