vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 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
CountdownProblem 
Autor: Cheffboss
Datum: 05.11.20 17:39

Hallo!
Ich brauche eure Unterstützung.
Ich habe ein Programm das 60 Sekunden runterzählt.
Wenn die Zeit und die Bedienung Wahr ist.
Erscheint ein zweites Fenster,
hier soll man auf „Später erinnern!“ klicken, und die Zeit soll dann auf 5 Minuten gestellt werden.
Wenn man aber auf „Fenster schließen!“ klickt, soll der Wert wieder auf 60 Sekunden sein.
Im Anhang habe ich mal ein Beispielprojekt hochgeladen!

Die Fehlerbeschreibung:
Wenn ich auf „später“ klicke, dann 299 Sekunden anstatt 300.
Wenn ich auf „schließen“ klicke, dann 59 Sekunden anstatt 60.
Der Timer1 sollte auf Intervall 1000ms eingestellt sein!

Ich hoffe dass mir hier jemand helfen kann,
ich denke, ein Experte findet den Fehler sofort!
Vielen Dank!

Link:
https://workupload.com/file/7FHz7sCrz3Z
7 Tage wird die Datei auf dem Server gelöscht!


Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: CountdownProblem 
Autor: effeff
Datum: 05.11.20 19:26

Du lässt Dir das erste Mal die noch vorhandenen Sekunden zum falschen Zeitpunkt anzeigen; Wahrscheinlich im Tick-Event, was ja aber erst eine Sekunde später greift...

Anbei ein Beispiel dazu, welches nur eine Textbox und einen Button auf einer Form hat:

Public Class Form1
 
    Dim i As Integer = 0
 
    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles _
      Timer1.Tick
 
        i = i - 1
        TextBox1.Text = i
 
        If i = 0 Then
            Timer1.Stop()
            MessageBox.Show("Stop")
        End If
 
    End Sub
 
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
 
        Timer1.Interval = 1000
 
 
    End Sub
 
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles _
      Button1.Click
        i = 10
        TextBox1.Text = i
        Timer1.Start()
 
    End Sub
End Class

EALA FREYA FRESENA

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: CountdownProblem 
Autor: Kuno60
Datum: 06.11.20 22:30

Hallo!

Dies kommt, weil direkt nach dem Setzen auf 60 Sekunden, gleich wieder eine Sekunde abgezogen wird.
    ' Abziehen...
    If intZeitProzesse <> 0 Then intZeitProzesse -= 1
Das 59 Sekunden anstatt 60 Sekunden angezeigt wird, ist nicht falsch, da dies erst nach einer Sekunde angezeigt wird.

Wenn du direkt nach dem Setzen nochmal die Zeit anzeigen lässt, dann stimmt es korrekt.
    ' Anzeige...
    Me.lblProzesseInfofeld.Text = String.Format("Prüfe Prozesse in {0} Sekunde(" & _
      "n)", intZeitProzesse)
 
    ' Nur wenn Bedingung nicht Wahr,
    ' sonst wird es übersprungen!
    If intZeitProzesse = 0 Then
      NeuesFensterProzesseFrageCode()
      Me.lblProzesseInfofeld.Text = String.Format("Prüfe Prozesse in {0}" & _
        "Sekunde(n)", intZeitProzesse)
    End If
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: CountdownProblem 
Autor: Cheffboss
Datum: 09.11.20 17:18

@effeff
Danke, für deinen Code.
Habe einiges neues dazu gelernt!

@Kuno60
Vielen Dank, du hast das Problem gefunden.
Ich freue mich sehr.
Nochmals, Vielen Dank!
Bin wegen dem Problem fast durchgedreht.
Und nur mit einer Zeile war das Problem behoben.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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