Меня как-то попросили написать что-то подобное, получильсь вот что (см. вложение), для отображения и настроек используются 4 функции из SystemUtilites, работает довольно сносно

даже сам пользуюсь, хотя и делал не для себя.
Алгоритм работы такой:
Установить текст сообщение WaitSayMessage
[Установить минимальное и максимальное значение прогрессбара WaitSetMinMax]
Вывести окно [второй параметр - показывать прогресс или нет] WaitWin
[В цикле ожидания менять значение прогрессбара WaitSetPos]
"Погасить" окно WaitWin