RollUp und RollSide Label

    • VB.NET

      RollUp und RollSide Label

      Hi Leute,
      Ich habe mal was kleines villeicht nützliches gecoded.

      VB.NET-Quellcode

      1. 'RollUp Label
      2. Public Class RollUpLabel
      3. Inherits Label
      4. 'Der Timer für das RollUp
      5. Private WithEvents _timeRollUp As New Timer
      6. 'Der Style fürs RollUp
      7. Public Property RollUpStyle As RollUpStyle = RollUpStyle.RollDown
      8. Public Sub New()
      9. 'Timer für RollUp Initializieren
      10. _timeRollUp = New Timer
      11. 'Den Standard Intervall 100 Einstellen. 100 ist sehr schnell deswegen würde ich nicht drunter gehen!
      12. _timeRollUp.Interval = 100
      13. End Sub
      14. Public Property RollUpStart As New Point(Me.Location.X, -10)
      15. Public Property Tempo As Integer
      16. Get
      17. 'gibt den Wert des Tempos zurück. Er muss durch 100 geteilt werden das es als gültige RollUp Zahl angegeben wird
      18. Return _timeRollUp.Interval / 100
      19. End Get
      20. Set(value As Integer)
      21. 'Prüfen ob die Zahl kleiner oder gleich 9 ist. Sonst wäre es zu langsam
      22. If value <= 9 Then
      23. 'Den Intervall mal 100 rechnen um es in Millisekunden anzugeben.
      24. _timeRollUp.Interval = value * 100
      25. Else
      26. 'Wäre zu langsam also Abblocken
      27. Throw New Exception("Der Wert darf nicht größer als 9 sein!")
      28. End If
      29. End Set
      30. End Property
      31. 'Der Punkt für StopRollup, also wo das Label nach RollUp Stoppen hingesetzt wird
      32. Private _pBefore As Point = New Point(10, 10)
      33. 'Startet den Rollup
      34. Sub StartRollup()
      35. 'Den RollUp Timer starten
      36. _timeRollUp.Start()
      37. 'Den Recovery Punkt für StopRollup festlegen
      38. _pBefore = Me.Location
      39. 'Die Startlocation abrufen und also Me.Location festlegen
      40. Me.Location = RollUpStart
      41. End Sub
      42. 'Stopt den Rollup
      43. Sub StopRollup()
      44. 'Stopt den Timer
      45. _timeRollUp.Stop()
      46. 'Setzt die Position die wir vorher gesaved haben
      47. Me.Location = _pBefore
      48. End Sub
      49. 'Der Code für das RollUp
      50. Private Sub _timeRollUp_Tick(sender As Object, e As EventArgs) Handles _timeRollUp.Tick
      51. 'Die Aktuelle Position deklarieren
      52. Dim meLC As Point = Me.Location
      53. 'Den RollUpStyle prüfen
      54. If Me.RollUpStyle = RollUp_Text.RollUpStyle.RollDown Then
      55. 'Es geht von Oben nach Unten also + Rechnen zu der Y Koordinate
      56. meLC.Y += 3
      57. Else
      58. 'Es geht von Unten nach Oben also - Rechnen zu der Y Koordinate
      59. meLC.Y -= 3
      60. End If
      61. 'Die bearbeitete Position setzen
      62. Me.Location = meLC
      63. 'StopRollup Position prüfen
      64. If Me.Location = StopRollupPoint Then
      65. 'Stop Rollup Auslösen
      66. StopRollup()
      67. End If
      68. End Sub
      69. 'Optional: Rollup bei einer bestimmten Position stoppen:
      70. Public Property StopRollupPoint As New Point(0, 0)
      71. End Class
      72. 'Alle RollUp Styles
      73. Public Enum RollUpStyle
      74. ''' <summary>
      75. ''' Der Text rollt von Unten nach Oben
      76. ''' </summary>
      77. RollUp
      78. ''' <summary>
      79. ''' Der Text rollt von Oben nach Unten
      80. ''' </summary>
      81. RollDown
      82. End Enum
      83. 'RollSide Label
      84. Public Class RollSideLabel
      85. Inherits Label
      86. 'Der Timer für das RollSide
      87. Private WithEvents _timeRollSide As New Timer
      88. 'Der Style fürs RollSide
      89. Public Property RollSideStyle As RollSideStyle = RollSideStyle.RollLeft
      90. Public Sub New()
      91. 'Timer für RollSide Initializieren
      92. _timeRollSide = New Timer
      93. 'Den Standard Intervall 100 Einstellen. 100 ist sehr schnell deswegen würde ich nicht drunter gehen!
      94. _timeRollSide.Interval = 100
      95. End Sub
      96. Public Property RollSideStart As New Point(-10, Me.Location.X)
      97. Public Property Tempo As Integer
      98. Get
      99. 'gibt den Wert des Tempos zurück. Er muss durch 100 geteilt werden das es als gültige RollSide Zahl angegeben wird
      100. Return _timeRollSide.Interval / 100
      101. End Get
      102. Set(value As Integer)
      103. 'Prüfen ob die Zahl kleiner oder gleich 9 ist. Sonst wäre es zu langsam
      104. If value <= 9 Then
      105. 'Den Intervall mal 100 rechnen um es in Millisekunden anzugeben.
      106. _timeRollSide.Interval = value * 100
      107. Else
      108. 'Wäre zu langsam also Abblocken
      109. Throw New Exception("Der Wert darf nicht größer als 9 sein!")
      110. End If
      111. End Set
      112. End Property
      113. 'Der Punkt für StopRollside, also wo das Label nach RollSide Stoppen hingesetzt wird
      114. Private _pBefore As Point = New Point(10, 10)
      115. 'Startet den Rollside
      116. Sub StartRollside()
      117. 'Den Rollside Timer starten
      118. _timeRollSide.Start()
      119. 'Den Recovery Punkt für StopRollside festlegen
      120. _pBefore = Me.Location
      121. 'Die Startlocation abrufen und also Me.Location festlegen
      122. Me.Location = RollSideStart
      123. End Sub
      124. 'Stopt den Rollside
      125. Sub StopRollside()
      126. 'Stopt den Timer
      127. _timeRollSide.Stop()
      128. 'Setzt die Position die wir vorher gesaved haben
      129. Me.Location = _pBefore
      130. End Sub
      131. 'Der Code für das Rollside
      132. Private Sub _timeRollSide_Tick(sender As Object, e As EventArgs) Handles _timeRollSide.Tick
      133. 'Die Aktuelle Position deklarieren
      134. Dim meLC As Point = Me.Location
      135. 'Den RollSideStyle prüfen
      136. If Me.RollSideStyle = RollUp_Text.RollSideStyle.RollLeft Then
      137. 'Es geht von Links nach Rechts also + Rechnen zu der X Koordinate
      138. meLC.X += 3
      139. Else
      140. 'Es geht von Rechts nach Links also - Rechnen zu der X Koordinate
      141. meLC.X -= 3
      142. End If
      143. 'Die bearbeitete Position setzen
      144. Me.Location = meLC
      145. 'StopRollside Position prüfen
      146. If Me.Location = StopRollsidePoint Then
      147. 'Stop Rollside Auslösen
      148. StopRollside()
      149. End If
      150. End Sub
      151. 'Optional: Rollside bei einer bestimmten Position stoppen:
      152. Public Property StopRollsidePoint As New Point(0, 0)
      153. End Class
      154. 'Alle RollSide Styles
      155. Public Enum RollSideStyle
      156. ''' <summary>
      157. ''' Der Text rollt von Links nach Rechts
      158. ''' </summary>
      159. ''' <remarks></remarks>
      160. RollRight
      161. ''' <summary>
      162. ''' Der Text rollt von Rechts nach Links
      163. ''' </summary>
      164. ''' <remarks></remarks>
      165. RollLeft
      166. End Enum

      Viel Spaß mit diesem Label. Kann villeicht bei Spielen oder bei der Credits bei Software nützlich sein.

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ManuelSoftware“ ()