如何用递归算法画出一个树???
最好能给个递归的算法,最好有示例了,谢谢各位大哥了!!!

解决方案 »

  1.   

    procedure TFrm_SearchRes.CreateSubTree(FNodeName: string; Node: TTreeNode);
    var
         mLocalName: string;//当前结点编码
         p:Pstr;
         TreeNode: TTreeNode;
         qryTemp: TADOquery;
    begin
      qryTemp := TADOquery.Create(application);
      qryTemp.Connection :=DM_SysInit.cntSysInit;
      //生成商品类别树
      try
        with qryTemp do
        begin
          //查找结点下的所有子结点
          Close;
          sql.clear;
          sql.add(format('Select * from SYST_Class Where FClassID = ''%S'' and State=1 ',[FNodeName]));
          Open;
          First;
          //生成结点并下传结点编码
          while not Eof do
          begin
            mLocalName := FieldbyName('ClassID').Asstring;
            new(p);
            p^:=mLocalName;
            TreeNode   := trvSYST_Class.Items.AddChildObject(Node,FieldByName('ClassName').AsString,p);
            CreateSubTree(mLocalName, TreeNode);
            Next;
          end;
        end;
      finally
        qryTemp.Free ;
      end;
    end;