Delphi 03

TimerコンポーネントでDigital Timerを作る

Plan & designStart & running
ObjectPropertyValue
Form1Caption Digital Timer
Timer1Interval 0
Edit1Text 00:00
TabOrder2
+Font種類とサイズを指定
Button1Caption スタート(&S)
TabOrder0
Button2Caption ストップ(&P)
TabOrder1
Project1 = TimerSample.dpj
Unit1 = TimerSample1.pas
{1998 Digital Timer, 塚越p.91を参照 }
unit TimerSample1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Timer1: TTimer;
    Edit1: TEdit;
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private 宣言 }
  public
    { Public 宣言 }
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}
var
   GT : Integer;            {経過時間、グローバル変数で宣言}

{スタートボタンのイベントハンドラ}
procedure TForm1.Button1Click(Sender: TObject);
begin
     Edit1.Text := ' 00.00';
     Timer1.Interval := 10; {タイマーの間隔を10/1000秒}
end;

{ストップボタンのイベントハンドラ}
procedure TForm1.Button2Click(Sender: TObject);
begin
     Timer1.Interval := 0;  {タイマーの間隔を0秒にするとタイマーを停止できる}
     GT := 0;        {経過時間をクリアする}
end;

{タイマーのイベントハンドラ}
procedure TForm1.Timer1Timer(Sender: TObject);
var
   SC,MS : Integer;
begin
     GT := GT + 1;           {1/100秒経過させる}
     SC := GT div 60;    {秒の部分を求める}
     MS := GT mod 60;    {1/100秒の部分を求める}
  { ss.mmの形式で表示する}
     if SC>=10 then
         Edit1.Text := ' '+IntToStr(SC)+'.'+IntToStr(MS)
     else
         Edit1.Text := ' 0'+IntToStr(SC)+'.'+IntToStr(MS);
end;

end.

1998/05/30 T.Katayama