Creo que deberías usar un Threading, creo que se llama así, no lo he usado nunca pero te permite tener una animación o una barra de progreso en paralelo a la ejecución del programa.
Aquí mismo tienes muchos ejemplos:
https://www.clubdelphi.com/foros/sho...ight=Threading