procedure TForm1.Button2Click(Sender: TObject);
var
i:integer;
aa: TTreeNode;
begin
aa := nil;
for i:=1 to Table1.recordcount do
begin
aa:=TreeView1.Items.Add(aa,TreeView1.Items[i],Table1.Fields[1].asstring);
Table1.Next;
end;
end;

解决方案 »

  1.   

    对不起应是
    procedure TForm1.Button2Click(Sender: TObject);
    var
    i:integer;
    aa: TTreeNode;
    begin
    aa := nil;
    for i:=1 to Table1.recordcount do
    begin
    aa:=TreeView1.Items.Add(aa,Table1.Fields[1].asstring);
    Table1.Next;
    end;
    end;
      

  2.   

    改成如下:
    procedure TForm1.Button2Click(Sender: TObject);
    var
      i:integer;
    begin
      for i:=1 to Table1.recordcount do
      begin
      TreeView1.Items.Add(nil,Table1.Fields[1].asstring);
      Table1.Next;
      end;
    end;
      

  3.   

    TreeView1.Items.Add(TreeView1.Items[i],Table1.Fields[1].asstring);
    如果一开始你的TreeView1是空的,这时TreeView1.Items没有元素,而i=1(第一次循环时),即访问第二个元素,当然出错了.你先向TreeView1添加两个元素,再执行这段代码就明白了.
      

  4.   

    Add第一个根节点时应为(nil,Table1.Fields[1].asstring);