198 lines
4.5 KiB
VB.net
198 lines
4.5 KiB
VB.net
Public Class match_timer
|
|
|
|
'--[MATCH SETTINGS]---------------
|
|
Private _set_minutes As Integer
|
|
Private _set_seconds As Integer
|
|
|
|
'--[MATCH SETTINGS]---------------
|
|
Private _run_minutes As Integer
|
|
Private _run_seconds As Integer
|
|
|
|
'--[MATCH SETTINGS]---------------
|
|
Private _timeUp As Boolean
|
|
Private _last10Sec As Boolean
|
|
|
|
'--[MATCH SETTINGS]---------------
|
|
Private _stop As Boolean
|
|
Private _start As Boolean
|
|
Private _pause As Boolean
|
|
Private _continue As Boolean
|
|
|
|
Public Sub New(minutes As Integer, seconds As Integer)
|
|
|
|
' In Case Negative Numbers Where Set
|
|
If minutes < 0 Then
|
|
MsgBox("Sorry You Cant Set Negative Numbers", vbOKOnly + vbCritical, "Wrong Setting")
|
|
Exit Sub
|
|
End If
|
|
|
|
' Timing Setup
|
|
_set_minutes = minutes
|
|
_set_seconds = seconds
|
|
|
|
' Copy To Running Timer
|
|
_run_minutes = _set_minutes
|
|
_run_seconds = _set_seconds
|
|
|
|
' Control Bits
|
|
_stop = False
|
|
_start = False
|
|
_pause = True
|
|
_continue = False
|
|
|
|
' Timer Flags
|
|
_timeUp = False
|
|
_last10Sec = False
|
|
|
|
End Sub
|
|
|
|
ReadOnly Property ReadMinutes As Integer
|
|
Get
|
|
Return _run_minutes
|
|
End Get
|
|
End Property
|
|
|
|
ReadOnly Property ReadSeconds As Integer
|
|
Get
|
|
Return _run_seconds
|
|
End Get
|
|
End Property
|
|
|
|
ReadOnly Property ReadTime() As String
|
|
Get
|
|
Return Zero(_run_minutes) + ":" + Zero(_run_seconds)
|
|
End Get
|
|
End Property
|
|
|
|
ReadOnly Property TimeUp() As Boolean
|
|
Get
|
|
Return _timeUp
|
|
End Get
|
|
End Property
|
|
|
|
ReadOnly Property Last10Sec() As Boolean
|
|
Get
|
|
Return _last10Sec
|
|
End Get
|
|
End Property
|
|
|
|
Public Sub Run()
|
|
|
|
If _pause = False And _start = True Or _stop = False Then
|
|
|
|
If _run_minutes > 0 And _run_seconds = 0 Then
|
|
|
|
_run_minutes -= 1
|
|
_run_seconds = 59
|
|
|
|
ElseIf _run_minutes >= 0 And (_run_seconds > 0 And _run_seconds <= 59) Then
|
|
|
|
_run_seconds -= 1
|
|
DetectLast10Sec(_run_seconds)
|
|
|
|
ElseIf _run_minutes = 0 And _run_seconds = 0 Then
|
|
|
|
_timeUp = True
|
|
|
|
End If
|
|
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Private Sub DetectLast10Sec(seconds As Integer)
|
|
|
|
If seconds >= 0 And seconds < 10 Then
|
|
_last10Sec = True
|
|
Else
|
|
_last10Sec = False
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Public Sub StartTime()
|
|
|
|
If _stop = False Then
|
|
_start = True
|
|
_pause = False
|
|
Else
|
|
MsgBox("Cant Start Timer When Its Already Finished Count Down", vbOKOnly + vbInformation, "Timer Message")
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Public Sub StopTime()
|
|
If _start = True Then
|
|
_pause = True
|
|
_stop = True
|
|
Else
|
|
MsgBox("Cant Stop Timer When Its Not Even Started", vbOKOnly + vbInformation, "Timer Message")
|
|
End If
|
|
End Sub
|
|
|
|
Public Sub PauseTime()
|
|
|
|
If _start = True And _stop = False Then
|
|
_pause = True
|
|
Else
|
|
MsgBox("Cant Pause Timer When (Not Started) Or Ended", vbOKOnly + vbInformation, "Timer Message")
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Public Sub ResumeTime()
|
|
|
|
If _start = True And _stop = False Then
|
|
_pause = False
|
|
Else
|
|
MsgBox("Cant Resume Timer When (Not Started) Or Ended", vbOKOnly + vbInformation, "Timer Message")
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Public Sub ResetTime()
|
|
|
|
If _start = True And _stop = False Then
|
|
|
|
' Display A Message For The User To Choose
|
|
Dim iAsk As DialogResult = MessageBox.Show("Would You Like To Stop And Reset The Timer ?", "Timer Message", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
|
|
|
|
' Checking The Dialog Result
|
|
If iAsk = DialogResult.Yes Then
|
|
|
|
' Its Safe To Do A Reset
|
|
Reset_Time()
|
|
|
|
End If
|
|
|
|
ElseIf _start = True And _stop = True Then
|
|
|
|
' Its Safe To Do A Reset
|
|
Reset_Time()
|
|
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Private Sub Reset_Time()
|
|
|
|
_start = False
|
|
_pause = True
|
|
_stop = False
|
|
_run_minutes = _set_minutes
|
|
_run_seconds = _set_seconds
|
|
|
|
End Sub
|
|
|
|
Private Function Zero(Number As Integer) As String
|
|
|
|
If Number >= 0 And Number < 10 Then
|
|
Return "0" + Number.ToString
|
|
Else
|
|
Return Number.ToString
|
|
End If
|
|
|
|
End Function
|
|
|
|
End Class
|