Visual Studio 2010 Express

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Unsere Datenschutzerklärung wurde aktualisiert. Mit der Nutzung unseres Forums akzeptierst Du unsere Datenschutzerklärung. Du bestätigst zudem, dass Du mindestens 16 Jahre alt bist.

    • Visual Studio 2010 Express

      Hallo Zusammen

      Erst mal ich hab noch absolut keine Ahnung von Programmierung!

      Ich brauche einen Timer der 5 mal hintereinander 60 Sekunden herunterzählt und nach jeden 60 Sekunden ein Textfenster einblendet und eine Sounddatei abspielt und sich dann beendet. Das ganze möchte ich mit einem Button starten.
      Bitte kann mir jemand mit einem Code Beispiel helfen, ich bekomme es allein nicht hin.
    • Hi,

      Programmieren klappt nicht von ganz allein. Ohne Grundlagen lassen sich auch keine kleinen Projekte umsetzten.

      Hab für dich mal kurz was zusammen gebastelt. Vielleicht hilft's dir ja weiter, aber ich rate dir trotzdem dazu dich mit den Grundlagen vertraut zu machen.

      Du brauchst ein Formular, einen Button, ein Label und natürlich einen Timer...

      Quellcode

      1. // Variablen erstellen
      2. int sekunden = 60;
      3. int wiederholungen = 5;
      4. private void timer1_Tick(object sender, EventArgs e)
      5. {
      6. if (wiederholungen > 0)
      7. {
      8. // Herunterzählen
      9. sekunden = sekunden - 1;
      10. if (sekunden < 0)
      11. {
      12. // Sekunden zurücksetzten
      13. sekunden = 60;
      14. // Wiederholungen herunterzählen
      15. wiederholungen = wiederholungen - 1;
      16. // Nachricht anzeigen
      17. MessageBox.Show("Tadaaa");
      18. }
      19. // Sekunden anzeigen
      20. label1.Text = sekunden.ToString();
      21. }
      22. else
      23. {
      24. // Timer ausschalten
      25. timer1.Enabled = false;
      26. // Nachricht anzeigen
      27. label1.Text = "Fertig";
      28. }
      29. }
      30. private void button1_Click(object sender, EventArgs e)
      31. {
      32. // Timer einschalten
      33. timer1.Enabled = true;
      34. }
      Alles anzeigen
    • Visual Studio 2010 Express

      Hallo Xzeer
      Erstmal Danke, dass du dich meinem Problem angenommen hast!

      Irgendwie kommt bei mir gleich die Meldung "Fertig", wenn ich auf den Button klicke.
      Es sollten aber zwischen der MsgBox1 und der MsgBox2 usw. immer wieder 60 Sekunden vergehen, bevor sie eingeblendet werden.

      Hier nochmal der Code:

      Public Class Form1
      Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
      'Timer einschalten
      Timer1.Enabled = True
      End Sub

      Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
      Dim sekunden = 60
      Dim wiederholungen = 5

      If wiederholungen > 0 Then

      'Herunterzählen
      sekunden = sekunden - 1

      If sekunden < 0 Then

      ' Sekunden zurücksetzten
      sekunden = 60

      ' Wiederholungen herunterzählen
      wiederholungen = wiederholungen - 1

      ' Nachricht anzeigen
      MessageBox.Show("Tadaaa")


      ' Sekunden anzeigen
      Label1.Text = sekunden.ToString()

      Else

      ' Timer ausschalten
      Timer1.Enabled = False

      ' Nachricht anzeigen
      Label1.Text = "Fertig"
      End If
      End If
      End Sub
      End Class
    • Hi,

      dann hast du wahrscheinlich einen Fehler im Code...

      Deinen Code kann man nicht wirklich gut lesen. Benutz doch die Codetags, dann kann man man dir auch besser helfen. Außerdem scheint dein Code auch unvollständig zu sein. Es sieht auf den ersten Blick so aus, als ob diverse Klammern fehlen...
    • Hab dein Probem gefunden:

      In der Methode Timer_Tick ist dir ein logischer fehler unterlaufen:

      Quellcode

      1. If sekunden < 0 Then
      2. ...
      3. Else
      4. Hier darfst du natürlich nicht den Timer stoppen.
      5. Hier werden die Sekunden angezeigt
      6. EndIf


      Der Timer wird im Else-Block der "If wiederholungen > 0 Then"-Abfrage gestoppt. Erst dann ist das Programm fertig...

      Zum Verständnis der richtige Code:

      Quellcode

      1. Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
      2. If wiederholungen > 0 Then
      3. ' Sekunden herunterzählen
      4. sekunden = sekunden - 1
      5. If sekunden < 0 Then
      6. ' Sekunden zurücksetzten
      7. sekunden = 60
      8. ' Wiederholungen herunterzählen
      9. wiederholungen = wiederholungen - 1
      10. ' Nachricht anzeigen
      11. MessageBox.Show("Tadaaa")
      12. Else
      13. ' Sekunden anzeigen
      14. Label1.Text = CStr(sekunden)
      15. End If
      16. Else
      17. ' Timer ausschalten
      18. Timer1.Enabled = False
      19. ' Nachricht anzeigen
      20. Label1.Text = "Fertig"
      21. End If
      22. End Sub
      Alles anzeigen
    • Ja genau ich meinte, dass nach jeden 60 Sekunden eine TextBox auf dem Formular erstellt wird um einen Zahlenwert einzugeben.

      Z.Beisp. Nach 60 Sekunden TextBox1 Visible = True,
      Nach 120 Sekunden TextBox2 Visible = True,
      Nach 180 Sekunden TextBox3 Visible = True, usw. bis alle 5 TextBoxen auf der
      Form angezeigt werden und man 5 mal einen Zahlenwert eingeben kann.
    • Naja die richtige Idee hast du ja...

      Da die TextBoxen ja nicht dynamisch erzeugt werden müssen, kannst du ja einfach am Anfang schon mal 5 TextBoxen einbauen und deren Eigenschaft "visible" auf false setzten.

      Jetzt musst du nur noch an der richtigen Stelle abfragen wann die nächste Box sichtbar gemacht werden muss.

      Kleiner Denkanstoß: Werte die Variable "wiederholungen" an der richtigen Stelle aus um die nächste TextBox sichtbar zu machen...

      Wenn du nicht weiterkommst, kannst du dich ja nochmal melden...:D