近得一段代码
procedure TForm1.BitBtn1Click(Sender: TObject);
var
  i:integer;
  booklist:tbooklist;
  book:tbookstr;begin
  book:=table1.Book;
  try
    listbox1.Clear;
    booklist:=dbgrid1.SelectedRows;
    for i:=0 to booklist.Count-1 do
     begin
       table1.Book:=booklist[i];
       listbox1.Items.Add(table1.fieldbyname('name').AsString);//has probelm??
     end;
  finally
    table1.Book:=book;
  end;
    bitbtn2.Enabled:=true;
end;
是用于DBGird显示数据库,listbox显示DBGird中被选中的数据库的表,运行后无错,但listbox却无法显示,特请教各大虾,帮忙!!!最好指出错误,并给出正确代码,先谢了………

解决方案 »

  1.   

    table1.Book:=booklist[i];
    ->
    table1.GotoBook(pointer(booklist[i]));
      

  2.   

    这是帮助中例子:procedure TForm1.Button1Click(Sender: TObject);
    var
      i, j: Integer;
      s: string;
    begin
      if DBGrid1.SelectedRows.Count>0 then
        with DBGrid1.DataSource.DataSet do
          for i:=0 to DBGrid1.SelectedRows.Count-1 do
          begin
            GotoBook(pointer(DBGrid1.SelectedRows.Items[i]));
            for j := 0 to FieldCount-1 do
            begin          if (j>0) then s:=s+', ';
              s:=s+Fields[j].AsString;
            end;
            Listbox1.Items.Add(s);
            s:= '';
          end;
    end;主要是 booklist:=dbgrid1.SelectedRows;/////dbgrid1.SelectedRows.count=0
        for i:=0 to booklist.Count-1 do