Aus den oben besagten Gründen kann ich folgenden Konstrukt empfehlen.
Delphi-Quellcode:
var IrgendEineBedingungDieErfülltSeinSollte: Boolean;
.
.
.
IrgendEineBedingungDieErfülltSeinSollte := False;
.
.
.
while (not IrgendEineBedingungDieErfülltSeinSollte) do
begin
Sleep(100);
end;
Dann steht dein Programm nicht still und du kannst bis zur Erfüllung deiner Bedingung warten.