vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: nächste volle Stunde ermitteln 
Autor: Manfred X
Datum: 01.08.22 10:34

Hallo!

Eventuell könnte man den Countdown in einem eigenen Thread laufen lassen.

Public Class frmCountdown
 
    Dim lblCountdown As New Label With
        {.Parent = Me, .Width = 200, .Left = 10, .Top = 10, .BackColor = _
          Color.White}
 
    'Starten und Stoppen des CountDown
    Dim WithEvents btnstart As New Button With
        {.Parent = Me, .Left = 210, .Width = 100, .Top = 10, .Text = "Start"}
    Dim running As Boolean = False
 
    'Delegate für das Setzen der Labelanzeige aus dem Hintergrund-Thread
    Delegate Sub DelIntInt(mm As Integer, ss As Integer)
 
    Private Sub btnstart_Click(sender As Object, e As EventArgs) Handles _
      btnstart.Click
        running = Not running
        If running Then
            'Hintergrund-Thread starten
            btnstart.Text = "Stop"
            Dim th As New Threading.Thread(AddressOf countdown)
            th.Start()
        Else
            btnstart.Text = "Start"
            lblCountdown.Text = ""
        End If
    End Sub
 
 
    Private Sub countdown()
 
        Do
            Dim mm, ss As Integer
            GetMMSS(mm, ss)
            lblCountdown.Invoke(New DelIntInt(AddressOf SetCountDown), mm, ss)
            'Hintergrund-Thread für eine Sekunde anhalten
            Threading.Thread.Sleep(1000)
        Loop While running 'Thread läuft bis zur Betätigung der Stop-Taste
 
    End Sub
 
 
    Private Sub SetCountDown(mm As Integer, ss As Integer)
 
        lblCountdown.Text = mm.ToString("00") & ":" & ss.ToString("00")
 
    End Sub
 
 
    Private Function GetMMSS(ByRef mm As Integer, ByRef ss As Integer)
 
        Dim dt As DateTime = DateTime.Now.AddHours(1)
        Dim dt2 As New DateTime(dt.Year, dt.Month, dt.Day, dt.Hour, 0, 0, 0) _
          'nächste volle Stunde
        Dim ts As TimeSpan = (dt2 - DateTime.Now) 'aktuelle Differenz zur 
        ' nächsten vollen Stunde
        mm = ts.Minutes : ss = ts.Seconds 'Rückgabe
    End Function
 
End Class
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
nächste volle Stunde ermitteln850Marty**31.07.22 11:01
Re: nächste volle Stunde ermitteln292sv0001031.07.22 20:25
Re: nächste volle Stunde ermitteln300minimalist01.08.22 10:48
Re: nächste volle Stunde ermitteln298Manfred X01.08.22 11:00
Re: nächste volle Stunde ermitteln229Manfred X01.08.22 10:34

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel