Advertisement
filmee24

FastTimer

Dec 27th, 2012
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
VB.NET 4.29 KB | None | 0 0
  1. Imports System.ComponentModel
  2. Imports System.Threading
  3.  
  4. <DefaultEvent("Tick")> _
  5. Public Class FastTimer
  6.     Inherits System.ComponentModel.Component
  7.  
  8.     Public Event Tick(ByVal e As Integer)
  9.     Public Event LetterTick(letter As String)
  10.  
  11.     Private _started As Boolean = False
  12.  
  13.     Public Property Speed As State = State.Fastest
  14.  
  15.     Public Property CountStyle As CountStyleState = CountStyleState.Up
  16.  
  17.     Public Property CountValueType As CountValueState
  18.  
  19.     Public Enum State
  20.         Fastest = 0
  21.         Fast = 1
  22.         Normal = 2
  23.         Slow = 3
  24.         Slowest = 4
  25.     End Enum
  26.  
  27.     Public Enum CountValuestate
  28.         Numbers
  29.         Letters
  30.     End Enum
  31.  
  32.     Public Enum CountStyleState
  33.         Up = 0
  34.         Down = 1
  35.     End Enum
  36.  
  37.     Public Sub [Stop]()
  38.         _started = False
  39.         ticks = 0
  40.     End Sub
  41.  
  42.     Public Sub Enable()
  43.         _started = True
  44.     End Sub
  45.  
  46.     Public Property Interval As Integer = 1
  47.  
  48.  
  49.     Dim ticks As Integer = 0
  50.     Dim Cletter As Letter = Letter.Z
  51.     Public Sub Start()
  52.         While (_started)
  53.             If CountValueType = CountValuestate.Numbers Then
  54.                 If CountStyle = CountStyleState.Up Then
  55.                     ticks += 1 + Interval
  56.                 ElseIf CountStyle = CountStyleState.Down Then
  57.                     ticks -= 1 + Interval
  58.                 End If
  59.                 checkstate(Speed)
  60.                 RaiseEvent Tick(ticks)
  61.             Else
  62.                 If CountStyle = CountStyleState.Up Then
  63.                     checkletter()
  64.                     checkstate(Speed)
  65.                     RaiseEvent LetterTick([Enum].GetName(GetType(Letter), Cletter))
  66.                 End If
  67.             End If
  68.         End While
  69.     End Sub
  70.  
  71.     Sub checkletter()
  72.         Select Case Cletter
  73.             Case Letter.A
  74.                 Cletter = Letter.B
  75.             Case Letter.B
  76.                 Cletter = Letter.C
  77.             Case Letter.C
  78.                 Cletter = Letter.D
  79.             Case Letter.D
  80.                 Cletter = Letter.E
  81.             Case Letter.E
  82.                 Cletter = Letter.F
  83.             Case Letter.F
  84.                 Cletter = Letter.G
  85.             Case Letter.G
  86.                 Cletter = Letter.H
  87.             Case Letter.H
  88.                 Cletter = Letter.I
  89.             Case Letter.I
  90.                 Cletter = Letter.J
  91.             Case Letter.J
  92.                 Cletter = Letter.K
  93.             Case Letter.K
  94.                 Cletter = Letter.L
  95.             Case Letter.L
  96.                 Cletter = Letter.M
  97.             Case Letter.M
  98.                 Cletter = Letter.N
  99.             Case Letter.N
  100.                 Cletter = Letter.O
  101.             Case Letter.O
  102.                 Cletter = Letter.P
  103.             Case Letter.P
  104.                 Cletter = Letter.Q
  105.             Case Letter.Q
  106.                 Cletter = Letter.R
  107.             Case Letter.R
  108.                 Cletter = Letter.S
  109.             Case Letter.S
  110.                 Cletter = Letter.T
  111.             Case Letter.T
  112.                 Cletter = Letter.U
  113.             Case Letter.U
  114.                 Cletter = Letter.V
  115.             Case Letter.V
  116.                 Cletter = Letter.W
  117.             Case Letter.W
  118.                 Cletter = Letter.X
  119.             Case Letter.X
  120.                 Cletter = Letter.Y
  121.             Case Letter.Y
  122.                 Cletter = Letter.Z
  123.             Case Letter.Z
  124.                 Cletter = Letter.A
  125.         End Select
  126.         Application.DoEvents()
  127.     End Sub
  128.  
  129.     Sub checkstate(ByVal states As State)
  130.         Select Case states
  131.             Case State.Fastest
  132.                 Thread.Sleep(0)
  133.             Case State.Fast
  134.                 Thread.Sleep(100)
  135.             Case State.Normal
  136.                 Thread.Sleep(1000)
  137.             Case State.Slow
  138.                 Thread.Sleep(10000)
  139.             Case State.Slowest
  140.                 Thread.Sleep(100000)
  141.             Case Else
  142.                 Thread.Sleep(0)
  143.         End Select
  144.         Application.DoEvents()
  145.     End Sub
  146.  
  147.     Public Enum Letter
  148.         A
  149.         B
  150.         C
  151.         D
  152.         E
  153.         F
  154.         G
  155.         H
  156.         I
  157.         J
  158.         K
  159.         L
  160.         M
  161.         N
  162.         O
  163.         P
  164.         Q
  165.         R
  166.         S
  167.         T
  168.         U
  169.         V
  170.         W
  171.         X
  172.         Y
  173.         Z
  174.     End Enum
  175.  
  176. End Class
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement