Ну можно прямо влоб:
Код:
var
ATime: Integer = 10;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Dec(ATime);
ProgressBar1.Position := ATime;
if ATime <= 0 then
begin
Timer1.Enabled := False;
ShowMessage('Время истекло');
end;
end;
при этом настройки такие
Timer1.Interval = 1000
ProgressBar1.Position = 10
ProgressBar1.Max = 10
ProgressBar1.Min = 0
Но вся эта конструкция будет двигатся рывками, поэтому можно поигратся значением и задержкой, например так:
Код:
ATime: Integer = 100;
и настройки
Timer1.Interval = 100
ProgressBar1.Position = 100
ProgressBar1.Max = 100
ProgressBar1.Min = 0
получаем более гладкий сдвиг, но идет набег запаздывания где-то 1-2 сек, так что решай сам)