Und nun noch was zum eigentlichen Problem.
solange eine Prozeedur/Funktion läuft, dann ist natürlich das Programm gestoppt - das ist nun mal so, wenn alles nur in einem Thread abläuft, da kann halt nur einwas gemacht werden.
Also wenn du unbedingt so arbeiten willst, dann solltest du unbedingt dem Hauptthread mal ab und zu die Kontrolle geben.
Code:
[b]Repeat[/b]
Gauge1.Progress := Gauge1.Progress + 1;
[color=red]Application.ProcessMessages;[/color]
Sleep(5);
[b]Until[/b] Gauge1.Progress = 100;