unit TM; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Label1: TLabel; Label2: TLabel; Timer1: TTimer; btnStart: TButton; btnStop: TButton; btnReset: TButton; btnLap: TButton; procedure Timer1Timer(Sender: TObject); procedure btnStartClick(Sender: TObject); procedure btnStopClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure btnResetClick(Sender: TObject); procedure btnLapClick(Sender: TObject); private { Private declarations } StartTime : TDateTime; ElapsedTime : TDateTime; ElapsedTime2 : TDateTime; Totaltime : TDateTime; public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.Timer1Timer(Sender: TObject); var Hour, Min, Sec, MSec: Word; begin ElapsedTime := now - StartTime + Totaltime ; DecodeTime(Elapsedtime, Hour, Min, Sec, MSec); label1.Caption := IntToStr(Hour) + ':'+ IntToStr(Min) + ':'+ IntToStr(Sec); end; procedure TForm1.btnStartClick(Sender: TObject); begin Timer1.Enabled := True; Timer2.Enabled := True; StartTime := now; btnStart.Enabled := false; btnReset.enabled := false; end; procedure TForm1.btnStopClick(Sender: TObject); begin Timer1.enabled := false; btnReset.Enabled := true; btnStart.enabled := true; Totaltime := elapsedtime; end; procedure TForm1.FormCreate(Sender: TObject); begin label1.caption := '00:00:00'; end; procedure TForm1.btnResetClick(Sender: TObject); begin label1.caption := '00:00:00'; Totaltime := 0; end; procedure TForm1.btnLapClick(Sender: TObject); var Hour2, Min2, Sec2, MSec2: Word; begin ElapsedTime2 := now - StartTime; DecodeTime(ElapsedTime2, Hour2, Min2, Sec2, MSec2); label2.Caption := IntToStr(Hour2) + ':'+ IntToStr(Min2) + ':'+ IntToStr(Sec2); end; end.