Hi Leute,
Ich habe mal was kleines villeicht nützliches gecoded.
Viel Spaß mit diesem Label. Kann villeicht bei Spielen oder bei der Credits bei Software nützlich sein.
Ich habe mal was kleines villeicht nützliches gecoded.
VB.NET-Quellcode
- 'RollUp Label
- Public Class RollUpLabel
- Inherits Label
- 'Der Timer für das RollUp
- Private WithEvents _timeRollUp As New Timer
- 'Der Style fürs RollUp
- Public Property RollUpStyle As RollUpStyle = RollUpStyle.RollDown
- Public Sub New()
- 'Timer für RollUp Initializieren
- _timeRollUp = New Timer
- 'Den Standard Intervall 100 Einstellen. 100 ist sehr schnell deswegen würde ich nicht drunter gehen!
- _timeRollUp.Interval = 100
- End Sub
- Public Property RollUpStart As New Point(Me.Location.X, -10)
- Public Property Tempo As Integer
- Get
- 'gibt den Wert des Tempos zurück. Er muss durch 100 geteilt werden das es als gültige RollUp Zahl angegeben wird
- Return _timeRollUp.Interval / 100
- End Get
- Set(value As Integer)
- 'Prüfen ob die Zahl kleiner oder gleich 9 ist. Sonst wäre es zu langsam
- If value <= 9 Then
- 'Den Intervall mal 100 rechnen um es in Millisekunden anzugeben.
- _timeRollUp.Interval = value * 100
- Else
- 'Wäre zu langsam also Abblocken
- Throw New Exception("Der Wert darf nicht größer als 9 sein!")
- End If
- End Set
- End Property
- 'Der Punkt für StopRollup, also wo das Label nach RollUp Stoppen hingesetzt wird
- Private _pBefore As Point = New Point(10, 10)
- 'Startet den Rollup
- Sub StartRollup()
- 'Den RollUp Timer starten
- _timeRollUp.Start()
- 'Den Recovery Punkt für StopRollup festlegen
- _pBefore = Me.Location
- 'Die Startlocation abrufen und also Me.Location festlegen
- Me.Location = RollUpStart
- End Sub
- 'Stopt den Rollup
- Sub StopRollup()
- 'Stopt den Timer
- _timeRollUp.Stop()
- 'Setzt die Position die wir vorher gesaved haben
- Me.Location = _pBefore
- End Sub
- 'Der Code für das RollUp
- Private Sub _timeRollUp_Tick(sender As Object, e As EventArgs) Handles _timeRollUp.Tick
- 'Die Aktuelle Position deklarieren
- Dim meLC As Point = Me.Location
- 'Den RollUpStyle prüfen
- If Me.RollUpStyle = RollUp_Text.RollUpStyle.RollDown Then
- 'Es geht von Oben nach Unten also + Rechnen zu der Y Koordinate
- meLC.Y += 3
- Else
- 'Es geht von Unten nach Oben also - Rechnen zu der Y Koordinate
- meLC.Y -= 3
- End If
- 'Die bearbeitete Position setzen
- Me.Location = meLC
- 'StopRollup Position prüfen
- If Me.Location = StopRollupPoint Then
- 'Stop Rollup Auslösen
- StopRollup()
- End If
- End Sub
- 'Optional: Rollup bei einer bestimmten Position stoppen:
- Public Property StopRollupPoint As New Point(0, 0)
- End Class
- 'Alle RollUp Styles
- Public Enum RollUpStyle
- ''' <summary>
- ''' Der Text rollt von Unten nach Oben
- ''' </summary>
- RollUp
- ''' <summary>
- ''' Der Text rollt von Oben nach Unten
- ''' </summary>
- RollDown
- End Enum
- 'RollSide Label
- Public Class RollSideLabel
- Inherits Label
- 'Der Timer für das RollSide
- Private WithEvents _timeRollSide As New Timer
- 'Der Style fürs RollSide
- Public Property RollSideStyle As RollSideStyle = RollSideStyle.RollLeft
- Public Sub New()
- 'Timer für RollSide Initializieren
- _timeRollSide = New Timer
- 'Den Standard Intervall 100 Einstellen. 100 ist sehr schnell deswegen würde ich nicht drunter gehen!
- _timeRollSide.Interval = 100
- End Sub
- Public Property RollSideStart As New Point(-10, Me.Location.X)
- Public Property Tempo As Integer
- Get
- 'gibt den Wert des Tempos zurück. Er muss durch 100 geteilt werden das es als gültige RollSide Zahl angegeben wird
- Return _timeRollSide.Interval / 100
- End Get
- Set(value As Integer)
- 'Prüfen ob die Zahl kleiner oder gleich 9 ist. Sonst wäre es zu langsam
- If value <= 9 Then
- 'Den Intervall mal 100 rechnen um es in Millisekunden anzugeben.
- _timeRollSide.Interval = value * 100
- Else
- 'Wäre zu langsam also Abblocken
- Throw New Exception("Der Wert darf nicht größer als 9 sein!")
- End If
- End Set
- End Property
- 'Der Punkt für StopRollside, also wo das Label nach RollSide Stoppen hingesetzt wird
- Private _pBefore As Point = New Point(10, 10)
- 'Startet den Rollside
- Sub StartRollside()
- 'Den Rollside Timer starten
- _timeRollSide.Start()
- 'Den Recovery Punkt für StopRollside festlegen
- _pBefore = Me.Location
- 'Die Startlocation abrufen und also Me.Location festlegen
- Me.Location = RollSideStart
- End Sub
- 'Stopt den Rollside
- Sub StopRollside()
- 'Stopt den Timer
- _timeRollSide.Stop()
- 'Setzt die Position die wir vorher gesaved haben
- Me.Location = _pBefore
- End Sub
- 'Der Code für das Rollside
- Private Sub _timeRollSide_Tick(sender As Object, e As EventArgs) Handles _timeRollSide.Tick
- 'Die Aktuelle Position deklarieren
- Dim meLC As Point = Me.Location
- 'Den RollSideStyle prüfen
- If Me.RollSideStyle = RollUp_Text.RollSideStyle.RollLeft Then
- 'Es geht von Links nach Rechts also + Rechnen zu der X Koordinate
- meLC.X += 3
- Else
- 'Es geht von Rechts nach Links also - Rechnen zu der X Koordinate
- meLC.X -= 3
- End If
- 'Die bearbeitete Position setzen
- Me.Location = meLC
- 'StopRollside Position prüfen
- If Me.Location = StopRollsidePoint Then
- 'Stop Rollside Auslösen
- StopRollside()
- End If
- End Sub
- 'Optional: Rollside bei einer bestimmten Position stoppen:
- Public Property StopRollsidePoint As New Point(0, 0)
- End Class
- 'Alle RollSide Styles
- Public Enum RollSideStyle
- ''' <summary>
- ''' Der Text rollt von Links nach Rechts
- ''' </summary>
- ''' <remarks></remarks>
- RollRight
- ''' <summary>
- ''' Der Text rollt von Rechts nach Links
- ''' </summary>
- ''' <remarks></remarks>
- RollLeft
- 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“ ()