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; 

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      I: Integer;
    begin
      for I := 0 to DBGrid1.SelectedRows.Count - 1 do begin
        DBGrid1.DataSource.DataSet.Book := DBGrid1.SelectedRows[I];
        ShowMessage(DBGrid1.DataSource.DataSet.Fields[0].AsString);
      end;
    end;
      

  2.   

    fix bug
    procedure TForm1.Button1Click(Sender: TObject);
    var
      I: Integer;
    begin
      for I := 0 to DBGrid1.SelectedRows.Count - 1 do begin
    //    DBGrid1.DataSource.DataSet.Book := DBGrid1.SelectedRows[I];
        DBGrid1.DataSource.DataSet.Book := DBGrid1.SelectedRows.items[I];
        ShowMessage(DBGrid1.DataSource.DataSet.Fields[0].AsString);
      end;
    end;