Ich denke, dass es an deinem Sleep liegt, damit hälst du dein ganzes Programm an und es kann auch keine Tastendrücke mehr abfangen. So funktioniert es bei mir hervorragend:
Delphi-Quellcode:
procedure TForm2.Button3Click(Sender: TObject);
var b: Integer;
begin
aus := false;
ProgressBar1.Max := 200000;
for b := 0 to 200000 do
begin
Application.ProcessMessages;
if aus then
break;
//tue hier sonst die normale schleife
ProgressBar1.Position := b;
end;
end;