![]() |
Anzeige:
|
|
|||||||
| Visual Basic, Visual Basic.NET Alles zum Thema - Visual Basic und Visual Basic.NET
Fragen zu VBA bitte in das Forum Office-Anwendungen posten! |
|
![]() |
|
|
LinkBack | Themen-Optionen | Ansicht |
|
|
#1 (Direktlink) |
|
Erfolgreich angemeldet
![]() Registriert seit: 01.04.2006
Beiträge: 16
|
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. |
|
|
|
|
|
|
#2 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 08.02.2007
Ort: Wuppertal
Alter: 20
Beiträge: 707
|
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... Code:
// Variablen erstellen
int sekunden = 60;
int wiederholungen = 5;
private void timer1_Tick(object sender, EventArgs e)
{
if (wiederholungen > 0)
{
// Herunterzählen
sekunden = sekunden - 1;
if (sekunden < 0)
{
// 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";
}
}
private void button1_Click(object sender, EventArgs e)
{
// Timer einschalten
timer1.Enabled = true;
}
__________________
Xzeer |
|
|
|
|
|
#3 (Direktlink) |
|
Erfolgreich angemeldet
![]() Registriert seit: 01.04.2006
Beiträge: 16
|
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 Geändert von Woidlmaisi (05.09.2011 um 16:29 Uhr) |
|
|
|
|
|
#4 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 08.02.2007
Ort: Wuppertal
Alter: 20
Beiträge: 707
|
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...
__________________
Xzeer |
|
|
|
|
|
#5 (Direktlink) |
|
Erfolgreich angemeldet
![]() Registriert seit: 01.04.2006
Beiträge: 16
|
Es ist der gleiche Code den du für mich zusammengepastelt hast nur für Visual Studio 2010 Express angepasst den mit den Klammern funktioniert es nicht
|
|
|
|
|
|
|
#6 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 08.02.2007
Ort: Wuppertal
Alter: 20
Beiträge: 707
|
Wenn du die Projektdatei anhängst, könnte ich mal rüberschauen...
Grundlegend sollte mein Beispiel funktionieren....
__________________
Xzeer |
|
|
|
|
|
#7 (Direktlink) |
|
Erfolgreich angemeldet
![]() Registriert seit: 01.04.2006
Beiträge: 16
|
Habe mein Projekt jetzt hochgeladen
|
|
|
|
|
|
#8 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 08.02.2007
Ort: Wuppertal
Alter: 20
Beiträge: 707
|
Hab dein Probem gefunden:
In der Methode Timer_Tick ist dir ein logischer fehler unterlaufen: Code:
If sekunden < 0 Then
...
Else
Hier darfst du natürlich nicht den Timer stoppen.
Hier werden die Sekunden angezeigt
EndIf
Zum Verständnis der richtige Code: Code:
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
If wiederholungen > 0 Then
' Sekunden 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")
Else
' Sekunden anzeigen
Label1.Text = CStr(sekunden)
End If
Else
' Timer ausschalten
Timer1.Enabled = False
' Nachricht anzeigen
Label1.Text = "Fertig"
End If
End Sub
__________________
Xzeer |
|
|
|
|
|
#9 (Direktlink) |
|
Erfolgreich angemeldet
![]() Registriert seit: 01.04.2006
Beiträge: 16
|
Xzeer du bist einfach ..Klasse.. Danke!
funktioniert super!!! Eine Frage habe ich noch an Dich? Wie kann ich statt der 5 MsgBoxen nach jeden 60 Sekunden eine TextBox1, TextBox2, TextBox3, usw. anzeigen lassen. |
|
|
|
|
|
#10 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 08.02.2007
Ort: Wuppertal
Alter: 20
Beiträge: 707
|
Das verstehe ich nicht ganz...
Wie willst du eine TextBox anzeigen? Meinst du, dass nach jeden 60 Sekunden eine neue TextBox auf dem Formular erstellt wird oder einfach nur immer ein anderer Text in der MessageBox steht?
__________________
Xzeer |
|
|
|
|
|
|
#11 (Direktlink) |
|
Erfolgreich angemeldet
![]() Registriert seit: 01.04.2006
Beiträge: 16
|
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. |
|
|
|
|
|
#12 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 08.02.2007
Ort: Wuppertal
Alter: 20
Beiträge: 707
|
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...
__________________
Xzeer |
|
|
|
|
|
#13 (Direktlink) |
|
Erfolgreich angemeldet
![]() Registriert seit: 01.04.2006
Beiträge: 16
|
Hallo Xzeer
Danke nochmal für deine Geduld! habs hinbekommen |
|
|
|
|
|
#14 (Direktlink) |
|
Forenmaskottchen
![]() Registriert seit: 08.02.2007
Ort: Wuppertal
Alter: 20
Beiträge: 707
|
Ist doch super, gerne wieder...
__________________
Xzeer |
|
|
|
![]() |
|
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| visual studio | Visual | C/C++, Visual C++, Visual C++.NET | 3 | 03.11.2010 20:33 |
| Beta 2 von Visual Studio 2010 und .NET Framework 4 ab sofort verfügbar | Schwabenpfeil! | Aktuelle Meldungen | 0 | 20.10.2009 12:48 |
| [Visual Studio 2009 Express] Anwendungskonfiguration nicht korrekt | Bassboy | Software - Allgemein | 2 | 05.01.2009 14:42 |
| Microsoft Visual Studio Express 2008 zum Download! | Schwabenpfeil! | Aktuelle Meldungen | 0 | 29.01.2008 23:05 |
| cout mit Visual Studio.Net | Dominik | C/C++, Visual C++, Visual C++.NET | 3 | 11.03.2005 16:16 |