DBGRIDEH选定多行删除怎么实现。求高手指导!
最好给代码加注释。。

解决方案 »

  1.   


    procedure TEmp_F.btnDeleteClick(Sender: TObject);
    begin
      if dbgEmp.SelectedRows.Count > 0 then
      begin
       if MessageBox(Handle, '您要删除所有选中的记录吗?', '删除记录?', MB_OKCANCEL + MB_ICONWARNING) = IDOK then
        begin
          IF qryEMP.RecordCount > 0 then
          begin
            dbgEmp.SelectedRows.Delete;
          end;
        end;
      end else
      begin
        Application.MessageBox('请单击左边的序号选中一条记录或拖选一段记录,' +
          #13#10 +
          '也可以用Ctrl及Shift来进行多选,然后再删除记录。', '提示',
          MB_OK + MB_ICONINFORMATION);
      end;
    end;procedure TEmp_F.dbgEmpMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      if button=mbleft then dbgFirst := qryEmp.RecNo;
    end;procedure TEmp_F.dbgEmpMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      if button=mbleft then dbgLast := qryEmp.RecNo;
    end;
      

  2.   

    procedure TEmp_F.dbgEmpMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      if button=mbleft then dbgFirst := qryEmp.RecNo;
    end;procedure TEmp_F.dbgEmpMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      if button=mbleft then dbgLast := qryEmp.RecNo;
    end;
    这个没用啊
    dbgLast := qryEmp.RecNo; dbgFirst := qryEmp.RecNo;
    什么意思?
      

  3.   

      for i := 0 to DBGridEh1.SelectedRows.Count - 1 do
      begin
        DBGridEh1.DataSource.DataSet.GotoBook(Pointer(DBGridEh1.SelectedRows.Items[i]));
        DataSet.Delete;   //DataSet是与Grid绑定的记录集
      end;
      

  4.   

    dbgEmp.SelectedRows.Delete;
    这一句就够了。
      

  5.   

    procedure TEmp_F.dbgEmpMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      if button=mbleft then dbgFirst := qryEmp.RecNo;
    end;procedure TEmp_F.dbgEmpMouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      if button=mbleft then dbgLast := qryEmp.RecNo;
    end;dbgfirst和dbglast是两变量?还是什么?