Guten Tag,
Ich habe heute mit VB angefangen und wollte zum Anfang einen Countdown machen welcher mir die Restzeit anzeigt bis ein Raid wieder zur Verfügung steht. ( Also ein kleines Hilfstool für ein Online-Spiel).
Der Countdown funktionierte am Anfang einwandfrei - dann kam ich auf die Idee das ich für alle Raids einen Countdown erstelle. Also 3 Countdowns auf der selben Form.
Nun zu meinem Problem..
Ich lege die Zeit für den Countdown fest- sagen wir mal 50 Sekunden. Wenn ich einen einzelnd laufen lasse funktioniert es einwandfrei. Sobald ich aber 2 oder 3 Countdowns gleichzeitig laufen lasse sind bei allen 3 Countdowns die 50 Sekunden in ca. 10 Sekunden fertig runtergezählt. Der Countdown zählt nicht mehr im Sekundentakt und zählt auch mal 2 und mehr Sekunden gleichzeitig herunter.
Wie bekomme ich es hin das jeder Countdown für sich selbst zählt und die anderen nicht beeinflusst?
Hier mein aktueller Code (ist sogut wie alles C&P von Countdown Anleitungen - bevor die Frage aufkommt.. ich habe mich mit dem Code beschäftigt und weiß wofür was da ist bei den meisten Zeilen):
Spoiler anzeigen
Und so sieht mein Tool aus:
Ich hoffe ihr könnt mir helfen und erklären wie ich das behebe.
Ich danke im Vorraus
Mit freundlichen Grüßen
Biro49
Ich habe heute mit VB angefangen und wollte zum Anfang einen Countdown machen welcher mir die Restzeit anzeigt bis ein Raid wieder zur Verfügung steht. ( Also ein kleines Hilfstool für ein Online-Spiel).
Der Countdown funktionierte am Anfang einwandfrei - dann kam ich auf die Idee das ich für alle Raids einen Countdown erstelle. Also 3 Countdowns auf der selben Form.
Nun zu meinem Problem..
Ich lege die Zeit für den Countdown fest- sagen wir mal 50 Sekunden. Wenn ich einen einzelnd laufen lasse funktioniert es einwandfrei. Sobald ich aber 2 oder 3 Countdowns gleichzeitig laufen lasse sind bei allen 3 Countdowns die 50 Sekunden in ca. 10 Sekunden fertig runtergezählt. Der Countdown zählt nicht mehr im Sekundentakt und zählt auch mal 2 und mehr Sekunden gleichzeitig herunter.
Wie bekomme ich es hin das jeder Countdown für sich selbst zählt und die anderen nicht beeinflusst?
Hier mein aktueller Code (ist sogut wie alles C&P von Countdown Anleitungen - bevor die Frage aufkommt.. ich habe mich mit dem Code beschäftigt und weiß wofür was da ist bei den meisten Zeilen):
Visual Basic-Quellcode
- Public Class Form1
- Dim totaltime As Long
- Function AddZero(ByVal par As Integer) As String
- Dim a = ""
- If par < 10 Then
- a = "0" & par
- Else
- a = par
- End If
- Return a
- End Function
- Private Sub set_button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles set_button.Click
- totaltime = hr_input.Value * 60 * 60 + mn_input.Value * 60 + se_input.Value
- If totaltime <> 0 Then
- main_button.Enabled = True
- hr_label.Text = AddZero(totaltime \ 3600)
- mn_label.Text = AddZero((totaltime Mod 3600) \ 60)
- se_label.Text = AddZero((totaltime Mod 3600) Mod 60)
- main_button.Text = "Start"
- set_button.Enabled = False
- Else
- MsgBox("Felder dürfen nicht leer sein!")
- End If
- End Sub
- Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
- main_button.Enabled = False
- main_button1.Enabled = False
- main_button2.Enabled = False
- End Sub
- Private Sub main_button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles main_button.Click
- If main_button.Text = "Start" Or main_button.Text = "Continue" Then
- hr_input.Enabled = False
- mn_input.Enabled = False
- se_input.Enabled = False
- count.Enabled = True
- main_button.Text = "Stop"
- Else
- main_button.Text = "Continue"
- hr_input.Enabled = True
- mn_input.Enabled = True
- se_input.Enabled = True
- count.Enabled = False
- set_button.Enabled = True
- End If
- End Sub
- Private Sub count_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles count.Tick
- If totaltime > 0 Then
- totaltime -= 1
- Else
- count.Enabled = False
- MsgBox("Es ist Zeit für AW: Weißstein-Tempel!")
- main_button.Text = "Start"
- hr_input.Enabled = True
- mn_input.Enabled = True
- se_input.Enabled = True
- count.Enabled = False
- set_button.Enabled = True
- End If
- hr_label.Text = AddZero(totaltime \ 3600)
- mn_label.Text = AddZero((totaltime Mod 3600) \ 60)
- se_label.Text = AddZero((totaltime Mod 3600) Mod 60)
- End Sub
- Private Sub set_button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles set_button1.Click
- totaltime = hr_input1.Value * 60 * 60 + mn_input1.Value * 60 + se_input1.Value
- If totaltime <> 0 Then
- main_button1.Enabled = True
- hr_label1.Text = AddZero(totaltime \ 3600)
- mn_label1.Text = AddZero((totaltime Mod 3600) \ 60)
- se_label1.Text = AddZero((totaltime Mod 3600) Mod 60)
- main_button1.Text = "Start"
- set_button1.Enabled = False
- Else
- MsgBox("Felder dürfen nicht leer sein!")
- End If
- End Sub
- Private Sub main_button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles main_button1.Click
- If main_button1.Text = "Start" Or main_button1.Text = "Continue" Then
- hr_input1.Enabled = False
- mn_input1.Enabled = False
- se_input1.Enabled = False
- count1.Enabled = True
- main_button1.Text = "Stop"
- Else
- main_button1.Text = "Continue"
- hr_input1.Enabled = True
- mn_input1.Enabled = True
- se_input1.Enabled = True
- count1.Enabled = False
- set_button1.Enabled = True
- End If
- End Sub
- Private Sub count1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles count1.Tick
- If totaltime > 0 Then
- totaltime -= 1
- Else
- count1.Enabled = False
- MsgBox("Es is Zeit für AW: Flimmerland !")
- main_button1.Text = "Start"
- hr_input1.Enabled = True
- mn_input1.Enabled = True
- se_input1.Enabled = True
- count1.Enabled = False
- set_button1.Enabled = True
- End If
- hr_label1.Text = AddZero(totaltime \ 3600)
- mn_label1.Text = AddZero((totaltime Mod 3600) \ 60)
- se_label1.Text = AddZero((totaltime Mod 3600) Mod 60)
- End Sub
- Private Sub set_button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles set_button2.Click
- totaltime = hr_input2.Value * 60 * 60 + mn_input2.Value * 60 + se_input2.Value
- If totaltime <> 0 Then
- main_button2.Enabled = True
- hr_label2.Text = AddZero(totaltime \ 3600)
- mn_label2.Text = AddZero((totaltime Mod 3600) \ 60)
- se_label2.Text = AddZero((totaltime Mod 3600) Mod 60)
- main_button2.Text = "Start"
- set_button2.Enabled = False
- Else
- MsgBox("Felder dürfen nicht leer sein!")
- End If
- End Sub
- Private Sub main_button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles main_button2.Click
- If main_button2.Text = "Start" Or main_button2.Text = "Continue" Then
- hr_input2.Enabled = False
- mn_input2.Enabled = False
- se_input2.Enabled = False
- count2.Enabled = True
- main_button2.Text = "Stop"
- Else
- main_button2.Text = "Continue"
- hr_input2.Enabled = True
- mn_input2.Enabled = True
- se_input2.Enabled = True
- count2.Enabled = False
- set_button2.Enabled = True
- End If
- End Sub
- Private Sub count2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles count2.Tick
- If totaltime > 0 Then
- totaltime -= 1
- Else
- count2.Enabled = False
- MsgBox("Es is Zeit für AW: Wundertunnel !")
- main_button2.Text = "Start"
- hr_input2.Enabled = True
- mn_input2.Enabled = True
- se_input2.Enabled = True
- count2.Enabled = False
- set_button2.Enabled = True
- End If
- hr_label2.Text = AddZero(totaltime \ 3600)
- mn_label2.Text = AddZero((totaltime Mod 3600) \ 60)
- se_label2.Text = AddZero((totaltime Mod 3600) Mod 60)
- End Sub
- End Class
Und so sieht mein Tool aus:
Ich hoffe ihr könnt mir helfen und erklären wie ich das behebe.
Ich danke im Vorraus
Mit freundlichen Grüßen
Biro49