若有一个表字段名分别包含index_id、parent_id、index_name字段,index_name将在树型控件的节点上显示,index_id字段保存节点的唯一标识号,parent_id表示当前节点的父节点号,若只有2层结构关系,能否告知具体代码?
是不是一定要用指针?

解决方案 »

  1.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, DB, ADODB, ComCtrls, StdCtrls;type
      TForm1 = class(TForm)
        ADOConnection1: TADOConnection;
        ADOQuery1: TADOQuery;
        TreeView1: TTreeView;
        procedure FormShow(Sender: TObject);
      private
        { Private declarations }
        procedure newtreeview(Node:TTreeNode;ParentID:integer);
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure  TForm1.newtreeview(Node:TTreeNode;ParentID:integer);
    var
      tmpNode : TTreeNode;
      ADOquery1 : TADOQuery;
    begin
      ADOQuery1 := TADOQuery.Create(self);
      ADOQuery1.Connection := ADOConnection1;
      ADOQuery1.close;
      ADOQuery1.SQL.clear;
      ADOQuery1.SQL.Text := 'select * from City where Parent_ID ='+inttostr(ParentID);
      ADOQuery1.open;
      if ADOQuery1.recordcount > 0  then
      begin
        ADOQuery1.First;
        while not ADOQuery1.Eof do
        begin
          tmpNode := TreeView1.Items.AddChild(Node,ADOQuery1.FieldByName('Field_Name').AsString);
          Newtreeview(tmpNode,ADOQuery1.FieldByName('Index_ID').AsInteger);
          ADOQuery1.next;
        end;
      end;
      ADOQuery1.Free;
    end;procedure TForm1.FormShow(Sender: TObject);
    begin
      newtreeview(nil,0);
    end;end.