Query的结果集能否修改,要看你的SQL语句是否符合一定的规范,有一些SQl的结果是无法修改的如带有ORDER BY子句。Query控件有个RecNo属性可用于捕捉鼠标当前选定的行。
例:
var
  aRecNo : integer;
begin
  aRecNo := aQuery.RecNo;
  aQuery.DisableControls;
  aQuery.Close;
  ...delete record...
  aQuery.Open;
  aQuery.EnableControls;
  if aRecNo <= aQuery.RecordCount then 
  begin
    aQuery.RecNo := aRecNo;
  end
  else
  begin
    aQuery.Last;
  end;
end;不知此答是否对路,如有疑问可继续讨论。