近得一段代码
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.   

    listbox1.Items.Add(table1.fieldbyname('name').AsString);//has probelm??
         //--- 跟踪一下看看table1.fieldbyname('name').AsString的值,可能问题出现在这
      

  2.   

    也就是说表达方式有问题,没达到预期的目的Table没怎么用过,不是太熟
      

  3.   

    table1.fieldbyname('name').AsString 没有问题你把     for i:=0 to booklist.Count-1 do  换成    for i:=0 to 2  do  测试一下看看!
      

  4.   

    无我:如何跟踪table1.fieldbyname('name').AsString的值??table我也不是很孰,有其他方法实现吗??
      

  5.   

    单步调试看看
    booklist.Count
    的值,是否小于1
    或者
    begin
      book:=table1.Book;
      try
        listbox1.Clear;
        booklist:=dbgrid1.SelectedRows;
        showmessage(intostr(booklist.count));//显示有几条纪录showmessage(table1.fieldbyname('name').AsString)//看看是不是空字符串
    listbox1.Items.Add(table1.fieldbyname('name').AsString)    for i:=0 to booklist.Count-1 do