Hola Miguel, dos cosas, la primera y es solo por descartar me imagino que tienes un indice por el campo que pones en el where (Num_Proyecto) y la otra quizas te pueda ayudar el hecho de no usar parametros para el query
por ejemplo:
Código Delphi
[-]
with Query1 do begin
Close;
sql.clear;
sql.add('SELECT * FROM PROYECTOS WHERE NUM_PROYECTO='+IntToStr(QCab.FieldByName('NUM_PROYECTO').AsInteger));
Prepare;
open;
end;
Fuera de eso no se cual pudiera ser el problema.
Saludos.