본문 바로가기

Delphi/끄적이기

StopWatch로 시간 체크

var

.., System.Diagnostics;

type

IAutoStopWatch = interface procedure Start; function Stop: string; end; TAutoStopWatch = class(TInterfacedObject, IAutoStopWatch) private FStopWatch : TStopWatch; public procedure Start; function Stop: string; constructor Create(isStart: Boolean = True); destructor Destroy; override; end;

{ TAutoStopWatch } constructor TAutoStopWatch.Create(isStart: Boolean); begin FStopWatch := TStopWatch.Create; if isStart then begin FStopWatch.Reset; FStopWatch.Start; end; end; destructor TAutoStopWatch.Destroy; begin if FStopWatch.IsRunning then begin FStopWatch.Stop; ShowMessage(FormatDateTime('hh:nn:ss:zzz', FStopWatch.ElapsedMilliseconds/MSecsPerDay)); end; end; procedure TAutoStopWatch.Start; begin FStopWatch.Reset; FStopWatch.Start; end; function TAutoStopWatch.Stop: string; begin FStopWatch.Stop; Result := FormatDateTime('hh:nn:ss:zzz', FStopWatch.ElapsedMilliseconds/MSecsPerDay); end;

Ex)

var

StopWatch : IStopWatch;

begin

StopWatch := TAutoStopWatch.Create;


{To do}

//함수 종료 후 걸린 시간을 ShowMessage로 보여줌.

end;

var

StopWatch : IStopWatch;

begin

StopWatch := TAutoStopWatch.Create(False);


..

StopWatch.Start;

{To Do}

ShowMessage(StopWatch.Stop);


..

StopWatch.Start

{To Do}

//Stop을 호출하지 않으면 함수 종료 후 걸린 시간을 ShowMessage로 보여줌.

end;


반응형