All pastes #2080679 Raw Edit

Delphi Stopwatch with Lap

public text v1 · immutable
#2080679 ·published 2011-09-10 18:14 UTC
rendered paste body
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.