Hola,
Prueba a invertir el bucle, o sea algo como:
Código Delphi
[-]
procedure Tgen_oc_concurso.BitBtn5Click(Sender: TObject);
var i,j:integer;
begin
if DBGrid1.SelectedRows.Count>0 then
begin
with DBGrid1.DataSource.DataSet do
begin
for i := DBGrid1.SelectedRows.Count-1 downto 0 do
begin
GotoBookmark(pointer(DBGrid1.SelectedRows.Items[i]));
query4.Delete;
end;
end;
end,
end;
Ignoro ahora mismo si acaso no tendrías que cambiar...
Código Delphi
[-]
for i := DBGrid1.SelectedRows.Count-1 downto 0 do
... por:
Código Delphi
[-]
for i := DBGrid1.SelectedRows.Count-1 downto 1 do
... e incluso:
Código Delphi
[-]
for i := DBGrid1.SelectedRows.Count downto 0 do
... Pero el caso es que creo que tiene todas las papeletas para que invirtiendo el bucle no tengas el problema que mencionas.