我用以下代码进行删除在DBGrid1中选种的多条记录,
  if self.DBGrid1.SelectedRows.Count>0 then
  for i:=0 to self.DBGrid1.SelectedRows.Count-1 do
  begin
  self.ADOQuery1.GetBook(pointer(DBGrid.SelectedRows.item[i]));
  self.ADOQuery1.Delete;//删除记录
  end;
但编译不能通过,提示“too many actual parameter”,是不是pointer需要定义,怎么定义,谢谢大家

解决方案 »

  1.   

    procedure TForm1.btnDoSumClick(Sender: TObject);
    var
      i: Integer;
    begin
      if DBGrid1.SelectedRows.Count > 0 then
      begin
        sum := 0;
        with DBGrid1.DataSource.DataSet do
        begin
          for i := 0 to DBGrid1.SelectedRows.Count-1 do
          begin
            GotoBook(Pointer(DBGrid1.SelectedRows.Items[i]));
            self.ADOQuery1.Delete;//删除记录
          end;
        end;
      end
    end;
      

  2.   

    GotoBook(Pointer(DBGrid1.SelectedRows.Items[i]));
                  ^^^^注意此处   
    self.ADOQuery1.Delete;//删除记录
      

  3.   

    要多使用ADODataSet,因为它是ADO的封闭的最大原生对象.
    if DBGrid1.SelectedRows.Count>0 then
      for i:=0 to DBGrid1.SelectedRows.Count-1 do
        begin
        ADODateSet1.GotoBook(pointer(DBGrid.SelectedRows.item[i]));
        ADODateSet1.Delete;
        end;
      

  4.   

    多谢haipin(今天你Delphi8了吗?),结贴了