Du kannst es aber auch aller in einer EXE lassen. Brauchst nur ab und zu in rechenintensive oder langandauernte Prozeduren deines Programms
Application.ProcessMessages; einfügen. Das gibt deinem Programm jeweils etwas Zeit zum reagieren. Mach es aber nicht zu häufig, da jedes mal deine Prozedur dafür angehalten und damit langsamer wird.
Du brauchst dich auch nicht mehr um die Kommunikation zwichen deinen beiden Programmen zu kümmern. (es gibt ja nur noch eins)
Oder du lagerst solche Prozesse in einen eigenen Thread aus. Siehe
Thread.
Wobei ersteres einfacher ist.
Add:
-Anhang
-kannst sogar "ohne" starten, während "mit" läuft.