Wenn Du es von der CPU-Auslastung abhängig machen willst:
Delphi-Quellcode:
private
{ Private-Deklarationen }
Times: TThread.TSystemTimes;
...
procedure TForm1.FormCreate(Sender: TObject);
begin
TThread.GetSystemTimes(Times);
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
ProgressBar1.Position := TThread.GetCPUUsage(Times);
Application.ProcessMessages;
If ProgressBar1.Position>50 then...
end;