Вот немного доделал, теперь выполняется
Код:
procedure TMainTestForm.InThreadProc(var NextPos: Integer;
var ATerminate: Boolean);
begin
Sleep(500); // здесь делаем необходимые операции
Inc(NextPos, Random(15)); // обновляем позицию
ATerminate := (NextPos > 100);// если все сделали прекращаем
end;
с показом прогресса в отдельном окне пока не будет все сделано или прервано.