Hola compañeros, muchas gracias por sus sugerencias, pero he encontrado una solución más práctica que aumenta considerablemente el rendimiento de la aplicación:
Utilizo un nuevo datasourse (dtsauxiliar) y el datasourse maestro al que están pegados todos los componentes visuales los desactivo temporalmente mientras se termina el bucle.
Código Delphi
[-]dtsauxiliar.Dataset:=Querymaestro;
querydetalle.Datasourse:=dtsauxiliar;
Datasoursemaestro.Enable := False;
querydetalle.DisableControls;
try
querymaestro.First;
while not querymaestro.EOF do
begin
querydetalle.First;
while not querydetalle.EOF do
begin
querydetalle.Next;
end;
end;
querymaestro.Next;
end;
finally
dtsauxiliar.Dataset:=nil;
dtsauxiliar.Enable := False;
querydetalle.Datasourse:=Datasoursemaestro;
querydetalle.EnableControls;
Datasoursemaestro.Enable := True;
end;
Espero que les sirva, hasta la próxima.