А ты сначала вычисляй количество нужных (по маске) файлов в папке, ставь Max у прогресс бара = этому количеству, Step = 1, Position = 0, а потом, во время выполнения ф-ии поиска при каждом найденном файле делай у прогресс бара StepIt. И не забывай либо обновлятиь форму после изменения прогресс бара, либо использовать Application.ProcessMessages, хотя я всегдя использую аналогичную по сути, но намного более безглючную по исполнению процедуру
Код:
procedure Delay(Wnd: HWND = 0);
var
Msg: TMsg;
begin
while True do
begin
if not PeekMessage(Msg,Wnd,0,0,PM_REMOVE) then Break;
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
end;
Причем, для вычисления кол-ва файлов по маске можешь написать аналогичную функцию\процедуру текущей твоей, только более простую