Хотя я бы предложил запустить загрузку в отдельном потоке, читая документацию, вам необходимо подключить обработчик события к событию OnHeartBeat.
В этом обработчике событий вы можете вызывать Application.ProcessMessages()
, но это просто опасно из-за возможности запуска событий до того, как вы действительно захотите их. Я бы использовал собственный метод, чтобы вызывать только процедуру Paint. Вы можете просто передать дескриптор вашей формы в качестве параметра или привести любой элемент управления к TWinControl и использовать свойство handle. Это просто перекрасит форму / элемент управления, но не позволит взаимодействовать с мышью / клавиатурой.
procedure AllowRepaints(h: HWND);
var
m: tMsg;
begin
while PeekMessage(m, h, WM_PAINT, WM_PAINT, PM_REMOVE) do
DispatchMessage(m);
end;