Advertisement
Guest User

Untitled

a guest
Dec 5th, 2016
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.78 KB | None | 0 0
  1. unit uStoppuhr;
  2.  
  3. {$mode delphi}
  4.  
  5. interface
  6.  
  7. uses
  8. Classes, SysUtils, LCLIntf, Dialogs;
  9.  
  10. type
  11. { TStoppuhr}
  12.  
  13. TStoppuhr = class
  14. private
  15. startwert: integer;
  16. status: boolean;
  17. bestezeit: integer;
  18. lastround, thisround: integer;
  19.  
  20. public
  21. constructor create;
  22. procedure startTimer;
  23. procedure stopTimer;
  24. procedure resetTimer;
  25. function getTime:integer;
  26. function getMinuten:integer;
  27. function getSekunden:integer;
  28. function getZehntel:integer;
  29. function getStatus:boolean;
  30. function getBesteZeitMinuten:integer;
  31. function getBesteZeitSekunden:integer;
  32. function getBesteZeitZehntel:integer;
  33. function getLastRoundMinuten: integer;
  34. function getLastRoundSekunden: integer;
  35. function getLastRoundZehntel: integer;
  36. procedure CheckBesteZeit;
  37. end;
  38.  
  39. implementation
  40. { TStoppuhr}
  41.  
  42. constructor TStoppuhr.create;
  43. begin
  44. startwert:= 0;
  45. bestezeit := 0;
  46. lastround:= 0;
  47. status:= false;
  48. end;
  49.  
  50.  
  51. procedure TStoppuhr.startTimer;
  52. begin
  53.  
  54. if status = false then begin
  55. startwert := GetTickCount64;
  56. end;
  57.  
  58. status:= true;
  59. end;
  60.  
  61. procedure TStoppuhr.stopTimer;
  62. begin
  63. status:= false;
  64. startwert:= 0;
  65.  
  66. end;
  67.  
  68.  
  69. procedure TStoppuhr.resetTimer;
  70. begin
  71. CheckBesteZeit;
  72. if status then begin
  73. lastround:= GetTickCount64 - startwert;
  74. end;
  75. startwert:= 0;
  76. status:= false;
  77. end;
  78.  
  79. function TStoppuhr.getTime:integer;
  80. begin
  81. result := GetTickCount64 - startwert;
  82. end;
  83.  
  84. function TStoppuhr.getMinuten:integer;
  85. begin
  86. result:= ((GetTickCount64 - startwert) div 1000) div 60;
  87. end;
  88.  
  89. function TStoppuhr.getSekunden:integer;
  90. begin
  91. result:= ((GetTickCount64 - startwert) div 1000) - getMinuten*60;
  92. end;
  93.  
  94. function TStoppuhr.getZehntel:integer;
  95. begin
  96. result:= ((GetTickCount64 - startwert) mod 1000);
  97.  
  98. end;
  99.  
  100. function TStoppuhr.getStatus:boolean;
  101. begin
  102. result := status;
  103. end;
  104.  
  105. function TStoppuhr.getBesteZeitMinuten: integer;
  106. begin
  107. result:= ((bestezeit) div 1000) div 60;
  108. end;
  109.  
  110. function TStoppuhr.getBesteZeitSekunden: integer;
  111. begin
  112. result:= ((bestezeit) div 1000) - getBesteZeitMinuten*60;
  113. end;
  114.  
  115. function TStoppuhr.getBesteZeitZehntel: integer;
  116. begin
  117. result:= ((bestezeit) mod 1000);
  118. end;
  119.  
  120. function TStoppuhr.getLastRoundMinuten: integer;
  121. begin
  122. result:= ((lastround) div 1000) div 60;
  123. end;
  124.  
  125. function TStoppuhr.getLastRoundSekunden: integer;
  126. begin
  127. result:= ((lastround) div 1000) - getLastRoundMinuten*60;
  128. end;
  129.  
  130. function TStoppuhr.getLastRoundZehntel: integer;
  131. begin
  132. result:= ((lastround) mod 1000);
  133. end;
  134.  
  135. procedure TStoppuhr.CheckBesteZeit;
  136. begin
  137. if (bestezeit < (GetTickCount64 - startwert)) and (status = true) then begin
  138. bestezeit := (GetTickCount64 - startwert);
  139. end;
  140. end;
  141.  
  142. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement