Ein Thread läuft so lange, wie die Execute-Methode ausgeführt wird. Wird diese verlassen, wird auch der Thread beendet.
Besser wäre:
Delphi-Quellcode:
procedure TProgressBarThread.Execute;
begin
while not Terminated do
begin
Synchronize(MoveTh);
Sleep(50);
end;
end;
Terminated ist eine Eigenschaft von TThread. Diese kann man von außen auf
False setzen und so den Thread von außen kontrolliert beenden.
Ein weiteres Tutorial mit Hintergrundinformationen findest du hier: http:://delphitutorials.michael-puff.de