Нужно дать возможность оконным сообщениям ходить и обрабатываться.
Простой способ. Поминутное Application->ProcessMessages().
Сложный способ. Вынести долгую операцию в поток.
В обоих способах надо перевести элементы управления в такой режим, чтобы пользователь не мог выполнить лишние действия.