Hola,
dentro de un bucle no se procesan los mensajes del sistema operativo, quedando asi como 'bloqueado' (aunque en verdad no lo està). Una manera de evitar eso es usando Application.ProcessMessages.
Código Delphi
[-]
for a := 1 to 9 do
for b := 1 to 9 do
for c := 1 to 9 do
...
begin
Application.ProcessMessages;
...
end;