ProgressBarを使用して、時間の経過と共に減らしていくには…?


ブルー  2002-11-20 03:08:15  No: 2169

こんにちは。はじめて質問させていただきます。
最近、約1年ぶりにDelphiのプログラムに触れています。…が、
ProgressBarを使用して、例えば30秒ならその時間の経過と共に
増やすのではなく、逆に少しずつ減らしていくようにして、更に
残り時間をEditかPanelに「あと○秒」のように表示させたいのですが、
正直知識があまり無いので全然分かりません…。
…やっぱり、Timerを使うんですよね?
ヘルプを見たりはしてるんですけど、
でも、Timerの使い方が全然わかっていないもので…。


Taku  2002-11-20 05:15:13  No: 2170

TimerもProgressBarも値を代入したり取得するだけで簡単にプログラム可能です
以下を参考にしてみて下さい。

procedure TForm1.FormCreate(Sender: TObject);
begin
     //以下はデザイン時に設定可能
     Timer1.Enabled:=false;  //タイマー停止状態で開始
     Timer1.Interval:=1000;
     ProgressBar1.Max:=30;
     ProgressBar1.Min:=0;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
     Sec:=30; //初期化
     ProgressBar1.Position:=30;
     Label1.Caption:='あと30秒';
     Timer1.Enabled:=true; //タイマースタート
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
     dec(Sec);
     ProgressBar1.Position:=Sec;
     Label1.Caption:='あと'+inttostr(Sec)+'秒';
     if Sec<1 then Timer1.Enabled:=false;  //0になったら止める
end;


※返信する前に利用規約をご確認ください。








  このエントリーをはてなブックマークに追加