Search code examples
delphidelphi-2007stopwatch

Stopwatch class for Delphi 2007


Is there a stopwatch Class (preferably opensource) providing the same service as Diagnostics.TStopwatch in Delphi XE does?


Solution

  • My preference goes to this (TStopUhr) implementation found in Delphi Praxis forum.

    Excerpt:

    type
      TStopUhr = class
         private
           FStoppedTime : Int64;
           FStartValue : Int64;
           FStopValue : Int64;
           FStartTime : TDateTime;
           FStopTime : TDateTime;
           FMethode : TStopUhrMethode;
           FMethodeInUse : TStopUhrMethode;
         protected
           function GetStoppedTimeStr: String;
         public
           Constructor Create;
           Destructor Destroy; Override;
           procedure Start;
           procedure Stop;
           property StartTime : TDateTime read FStartTime;
           property StopTime : TDateTime read FStopTime;
           property StoppedTime : Int64 read FStoppedTime;
           property StoppedTimeStr : String read GetStoppedTimeStr;
           property MeasureMethode : TStopUhrMethode Read FMethode Write FMethode;
         end;
    

    Usage sample:

    var
       StopUhr : TStopUhr;
     begin
       StopUhr := TStopUhr.Create;
       StopUhr.MeasureMethode := su_TickCount; // default = su_DateTime
       StopUhr.Start;
    
      // zu messende Aufgabe
    
      StopUhr.Stop;
       ShowMessage(StopUhr.StoppedTimeStr);
       StopUhr.Free;
     end; 
    

    It provides a similar functionality to what RRUZ recommended in the question's comment thread.