问题如下:
DBGrid1设置为可以多选,当选中N行后,怎么得到每一个单元格的值?

解决方案 »

  1.   

      for i := 0 to DBGrid1.SelectedRows.Count - 1 do 
      begin
        ADOQuery1.GotoBook(pointer(DBGrid1.SelectedRows.Items[i]));
        ShowMessage(ADOQuery1.Fields[1].asString);
      end;
      

  2.   

    Delphi的帮助中有Demo的
    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;
      

  3.   

    同意caize131和chris_mao。批量处理DBGrid1的值(导出、插入、更新等)就是这样的。 也一直在用。