procedure TForm1.FormCreate(Sender: TObject);
var
 temnode,childnode,sunnode:TTreeNode; begin
 StatusBar1.Panels[0].Text:='系统管理员';
 TreeView1.Items.Clear;
 temnode:=TreeView1.Items.Add(TreeView1.Selected,PChar('中国长城公司'));
 adodataset1.first;
   while not adodataset1.eof do
      begin
   childnode:=TreeView1.Items.AddChild(temnode,adodataset1.FieldValues['name']);
   adodataset2.first;
      while not adodataset2.eof do
         begin
                if (length(adodataset2.FieldByName('lev').AsString)=2) and (Copy(adodataset2.FieldByName('lev').AsString,1,1)=adodataset1.FieldByName('lev').AsString) then
                 sunnode:=TreeView1.Items.AddChild(childnode,adodataset2.FieldValues['name']);
                 adodataset3.first;
      while not adodataset3.eof do
         begin
         if (length(adodataset3.FieldByName('lev').AsString)=3) and (Copy(adodataset3.FieldByName('lev').AsString,1,2)=adodataset2.FieldByName('lev').AsString) then
                 TreeView1.Items.AddChild(sunnode,adodataset3.FieldValues['name']);
                         adodataset3.next;
                 end;
                 adodataset2.next;
                 end;
                 adodataset1.next;
                 end;
                 end;

解决方案 »

  1.   

    procedure TForm1.FormCreate(Sender: TObject);
    var
     temnode,childnode,sunnode:TTreeNode; begin
     StatusBar1.Panels[0].Text:='系统管理员';
     TreeView1.Items.Clear;
     temnode:=TreeView1.Items.Add(Nil,PChar('中国长城公司'));//Selected -> Nil就可以了。
     adodataset1.first;
       while not adodataset1.eof do
          begin
       childnode:=TreeView1.Items.AddChild(temnode,adodataset1.FieldValues['name']);
       adodataset2.first;
          while not adodataset2.eof do
             begin
                    if (length(adodataset2.FieldByName('lev').AsString)=2) and (Copy(adodataset2.FieldByName('lev').AsString,1,1)=adodataset1.FieldByName('lev').AsString) then
                     sunnode:=TreeView1.Items.AddChild(childnode,adodataset2.FieldValues['name']);
                     adodataset3.first;
          while not adodataset3.eof do
             begin
             if (length(adodataset3.FieldByName('lev').AsString)=3) and (Copy(adodataset3.FieldByName('lev').AsString,1,2)=adodataset2.FieldByName('lev').AsString) then
                     TreeView1.Items.AddChild(sunnode,adodataset3.FieldValues['name']);
                             adodataset3.next;
                     end;
                     adodataset2.next;
                     end;
                     adodataset1.next;
                     end;
                     end;----------------
    沉沦中..........
      

  2.   

    temnode:=TreeView1.Items.Add(TreeView1.Selected,PChar('中国长城公司'));错误;
    temnode:=TreeView1.Items.Add(nil,PChar('中国长城公司'));
      

  3.   

    同意 soaringsouth(栈桥捉鳖) ( )