Button1をクリックしてからの経過時間を表示するには?

解決


gonta  2003-12-30 19:42:09  No: 6483

最近、Delphiを始めた初心者ですが、フォームにButton1を配置して、それをクリックしてからの経過時間を00:00:00の形でLabel1に表示したいのですが、どうすればいいのでしょうか?


Halbow  2003-12-30 20:23:24  No: 6484

Halbow です。

Form1 に Timer1 Button1 Label1 を置いて以下のようにします。

var
  Start:DWORD;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Timer1.Enabled := false;
  Timer1.Interval := 100;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Start := GetTickCount;
  Timer1.Enabled := true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
  Ji,Hun,Byou:integer;
  Progress:integer;
begin
  Progress := (GetTickCount-Start) div 1000;
  Ji := Progress div 3600;
  Hun := (Progress mod 3600) div 60;
  Byou := Progress - Ji*3600 - Hun*60;
  Label1.Caption := Format('%.2d:%.2d:%.2d',[Ji,Hun,Byou]);
end;


Halbow  2003-12-30 22:38:15  No: 6485

Halbow です。

こっちの方がよいかもしれません。

var
  Start:TDateTime;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Timer1.Enabled := false;
  Timer1.Interval := 100;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  Start := Now;
  Timer1.Enabled := true;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
  Progress:TDateTime;
begin
  Progress := Now - Start;
  Label1.Caption := FormatDateTime('hh:nn:ss',Progress);
end;


gotna  2003-12-31 00:59:40  No: 6486

付け加えです。
経過時間の00:00:00は00分00秒00ミリ秒です。
よろしくお願いします。


Halbow  2003-12-31 01:46:13  No: 6487

Halbow です。

> 経過時間の00:00:00は00分00秒00ミリ秒です。

ミリ秒というのは千分の一秒ですよ。二桁では表せません。

Label1.Caption := FormatDateTime('hh:nn:ss',Progress);

これをヘルプを見て書き直してください。


gonta  2003-12-31 01:57:42  No: 6488

Halbowさん  ありがとうございました。
早速やってみます。


gonta  2003-12-31 07:11:47  No: 6489

出来ました!
ありがとうございました。


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

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






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