盼复:大家知道DBgrid中可以按住Ctrl选中多行,怎样对所选定的记录进行处理?

解决方案 »

  1.   

    for ii :=1 to n do
    begin
      if DBGrid1.SelectedRows.CurrentRowSelected then
       begin
       // do your things
       end;
    end;
      

  2.   

    For I:=0 to DBgrid.SelectedRows.Count-1 do
            begin
              DBgrid.DataSource.DataSet.GotoBook(Pointer(DBgrid.SelectedRows.items[i]));
              DBgrid.DataSource.DataSet.Edit;
              DBgrid.DataSource.DataSet.FieldByName('').AsString:=;
              DBgrid.DataSource.DataSet.post;
            end;
      

  3.   

    if DBGrid.SelectedRows.Count >0 then
    begin
      for i :=0 to DBGrid_xzx.SelectedRows.Count-1 do
      begin
        Dbgrid.Datasource.dateset.GotoBook(Pointer    (DBGrid.SelectedRows.Items[i]));
        showMessage(dbgrid.datasource.dataset.fields[0].asstring);
      end;
    end
      

  4.   

    if DBGrid.SelectedRows.Count >0 then
    begin
      for i :=0 to DBGrid_xzx.SelectedRows.Count-1 do
      begin
        Dbgrid.Datasource.dateset.GotoBook(Pointer    (DBGrid.SelectedRows.Items[i]));
        showMessage(dbgrid.datasource.dataset.fields[0].asstring);
      end;
    end
    ***********************************
      

  5.   

    谢谢yuanjunjing,是我问的意思!!
      

  6.   

    都是大同小异阿,察看DELPHI关于DBGRID的SELECTROWS属性的帮助,其中有例子
    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;