Imports System.ComponentModel Imports System.Threading _ Public Class FastTimer Inherits System.ComponentModel.Component Public Event Tick(ByVal e As Integer) Public Event LetterTick(letter As String) Private _started As Boolean = False Public Property Speed As State = State.Fastest Public Property CountStyle As CountStyleState = CountStyleState.Up Public Property CountValueType As CountValueState Public Enum State Fastest = 0 Fast = 1 Normal = 2 Slow = 3 Slowest = 4 End Enum Public Enum CountValuestate Numbers Letters End Enum Public Enum CountStyleState Up = 0 Down = 1 End Enum Public Sub [Stop]() _started = False ticks = 0 End Sub Public Sub Enable() _started = True End Sub Public Property Interval As Integer = 1 Dim ticks As Integer = 0 Dim Cletter As Letter = Letter.Z Public Sub Start() While (_started) If CountValueType = CountValuestate.Numbers Then If CountStyle = CountStyleState.Up Then ticks += 1 + Interval ElseIf CountStyle = CountStyleState.Down Then ticks -= 1 + Interval End If checkstate(Speed) RaiseEvent Tick(ticks) Else If CountStyle = CountStyleState.Up Then checkletter() checkstate(Speed) RaiseEvent LetterTick([Enum].GetName(GetType(Letter), Cletter)) End If End If End While End Sub Sub checkletter() Select Case Cletter Case Letter.A Cletter = Letter.B Case Letter.B Cletter = Letter.C Case Letter.C Cletter = Letter.D Case Letter.D Cletter = Letter.E Case Letter.E Cletter = Letter.F Case Letter.F Cletter = Letter.G Case Letter.G Cletter = Letter.H Case Letter.H Cletter = Letter.I Case Letter.I Cletter = Letter.J Case Letter.J Cletter = Letter.K Case Letter.K Cletter = Letter.L Case Letter.L Cletter = Letter.M Case Letter.M Cletter = Letter.N Case Letter.N Cletter = Letter.O Case Letter.O Cletter = Letter.P Case Letter.P Cletter = Letter.Q Case Letter.Q Cletter = Letter.R Case Letter.R Cletter = Letter.S Case Letter.S Cletter = Letter.T Case Letter.T Cletter = Letter.U Case Letter.U Cletter = Letter.V Case Letter.V Cletter = Letter.W Case Letter.W Cletter = Letter.X Case Letter.X Cletter = Letter.Y Case Letter.Y Cletter = Letter.Z Case Letter.Z Cletter = Letter.A End Select Application.DoEvents() End Sub Sub checkstate(ByVal states As State) Select Case states Case State.Fastest Thread.Sleep(0) Case State.Fast Thread.Sleep(100) Case State.Normal Thread.Sleep(1000) Case State.Slow Thread.Sleep(10000) Case State.Slowest Thread.Sleep(100000) Case Else Thread.Sleep(0) End Select Application.DoEvents() End Sub Public Enum Letter A B C D E F G H I J K L M N O P Q R S T U V W X Y Z End Enum End Class