Timer für langsamen Textaufbau ???

  • VB.NET

Es gibt 52 Antworten in diesem Thema. Der letzte Beitrag () ist von zn-gong.

    @ErfinderDesRades schrieb:

    naja - bei ihm ja grad noch nicht.
    ja, da war ich in meinen Gedanken zu schnell... ;)

    Beim 1.Beispiel kannst du dein Array beliebig ändern - beim 2. hast du die Vorgabe in den Labels fixiert...
    Liegt an dir, was du jetzt vorhast...

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „VB1963“ ()

    Ich zB. finde diese vielen Abfragen ungünstig, das sollte mindestens eine ElseIf-Kette sein, einfach damit nicht unnötigerweise abgefragt wird, was eh nicht zutreffen kann.

    Aber noch besser fände ich den Einsatz eines Dictionaries:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private _Counter As Integer
    3. Private _KeyFrames As New Dictionary(Of Integer, String) From {{2, "Hallo"}, {5, "ich"}, {6, "bin"}, {7, "da"}}
    4. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    5. Timer1.Start()
    6. End Sub
    7. Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
    8. If _Counter = 9 Then
    9. Timer1.Stop()
    10. _Counter = 0
    11. Me.Label1.Text = ""
    12. Return
    13. End If
    14. Dim txt As String = Nothing
    15. If _KeyFrames.TryGetValue(_Counter, txt) Then Me.Label1.Text = txt
    16. _Counter += 1
    17. End Sub
    18. End Class
    Da kannst du an den Einträgen des Dics konfigurieren, welche Zeit und welcher Text, und klar kannst du weitere dazu machen, oder welche wegnehmen - wie du wolle.

    keyman schrieb:

    Was bedeutet Counter1 += 1?
    Wie lange brauchst Du, um das experimentell herauszubekommen?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    VB.NET-Quellcode

    1. Dim Zähler As Integer = 0
    2. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    3. Label1.Text = "" 'Entfernt den Text aus dem Label
    4. Reset() 'Setzt Zähler auf 0
    5. Timer1.Start()
    6. End Sub
    7. Public Sub Reset() 'Setzt Zähler auf 0
    8. Zähler = 0
    9. End Sub
    10. Public Sub Aktion(ByVal Sekunden As Integer) 'Führt Aktion aus
    11. Select Case Sekunden
    12. Case 3
    13. Label1.Text &= "Hallo," 'Fügt den entsprechenden Text ans Label an
    14. Case 5
    15. Label1.Text &= " ich"
    16. Case 7
    17. Label1.Text &= " bin"
    18. Case 9
    19. Label1.Text &= " da!"
    20. Timer1.Stop() 'Stoppt den Timer
    21. Reset() 'Setzt Zähler auf 0
    22. End Select
    23. End Sub
    24. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    25. Zähler = Zähler + 1 'Erhöht Zähler um 1
    26. Aktion(Zähler) 'Führt Aktion aus
    27. End Sub

    Das Intervall des Timers ist 1000
    umfassender HTML-Editor mit allem drum und dran: 40%
    @Ferb300
    1. Was sollen die ganzen Leerzeilen?
    2. Methoden für einen einzigen Befehl ist, naja, mMn redundant
    3. Umlaute (generell eig alle Zeichen außer A-Z, a-z, 0-9 und _) sollten in Variablennamen nicht enthalten sein.
    4. Hier gabs schon eine Lösung, bestimmt auch eine mit nem Dictionary, welche mMn am elegantesten ist.

    Nimms als konstruktive Kritik, nicht als Demütigung ;)
    »There's no need to "teach" atheism. It's the natural result of education without indoctrination.« — Ricky Gervais
    1. Sorry, als ich den Code aus VB einkopiert habe, ist das Automatisch passiert
    2. Hä?
    3. Mach ich immer wenn ichs brauch so, einfach weils funktioniert
    4. Sorry, hab ich nicht bemerkt
    umfassender HTML-Editor mit allem drum und dran: 40%
    Hallo,

    Der Counter sollte außerdem mit LBound und UBound begret werden da man sonst schnell die Array Grenzen überschreitet und dann wird ne OutOfRangeException geworfen.

    LG, Herbrich