10秒間固まるのが嫌なら適当に

t := GetTickCount;
while (Now-t)<10000 do
begin
Sleep(16);
Application.ProcessMessages;
end;

こんなかんじでいいんじゃね?