[VB] Timer Problem

06/19/2010 17:02 Chain Reaction#1
Hey Leute

Ich habe ein problem mit einem Timer.
Ich mache es meistens so, wenn Button1 geklickt wird soll das passieren:
PHP Code:
Timer1.Start
Timer1
.Interval 1000
timeleft 

So dann schreib ich bei Timer hin:
PHP Code:
timeleft timeleft -1
If timeleft 0 Then Label1.Visible True 
Natürlich schreibe ich vorher noch
PHP Code:
 Dim timeleft as Byte 
So dann debugge ich das ganze.
Nach 5 Sekunden wird auch schön das Label angezeigt nur dann beendet sich das debugging automatisch und dann kommt eine Fehlermeldung:


Die arethmetische Operation hat einen Überlauf verursacht.
Dividieren sie nicht durch 0.

Diese Fehlermeldung wird bei
PHP Code:
 timeleft timeleft -
angezeigt.
Was muss ich machen damit dies weg geht?
Gibt es noch andre Möglichkeiten außerd timeleft, dass z.B. Nach 5 Sekunden ein Label sichtbar gemacht wird?
Wenn ja wie?

Bekommt alle n Thanks von mir ;)
06/19/2010 17:22 P-a-i-n#2
nutz doch timer.tag sieht so aus

Code:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Timer1.Tag = 5
        Timer1.Enabled = True
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Timer1.Enabled = False
        Timer1.Interval = 1000
        Label1.Text = ""
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

        Timer1.Tag = Timer1.Tag - 1
        If Timer1.Tag < 0 Then
            Label1.Text = "huhu"
        End If
    End Sub
06/19/2010 17:52 killeeer111#3
Quote:
Originally Posted by luckystriker96 View Post
Hey Leute

Ich habe ein problem mit einem Timer.
Ich mache es meistens so, wenn Button1 geklickt wird soll das passieren:
PHP Code:
Timer1.Start
Timer1
.Interval 1000
timeleft 

So dann schreib ich bei Timer hin:
PHP Code:
timeleft timeleft -1
If timeleft 0 Then Label1.Visible True 
Natürlich schreibe ich vorher noch
PHP Code:
 Dim timeleft as Byte 
So dann debugge ich das ganze.
Nach 5 Sekunden wird auch schön das Label angezeigt nur dann beendet sich das debugging automatisch und dann kommt eine Fehlermeldung:


Die arethmetische Operation hat einen Überlauf verursacht.
Dividieren sie nicht durch 0.

Diese Fehlermeldung wird bei
PHP Code:
 timeleft timeleft -
angezeigt.
Was muss ich machen damit dies weg geht?
Gibt es noch andre Möglichkeiten außerd timeleft, dass z.B. Nach 5 Sekunden ein Label sichtbar gemacht wird?
Wenn ja wie?

Bekommt alle n Thanks von mir ;)
habs ein bisschen geändert ;)

Code:
Public Class Form1
dim timeleft as integer
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Timer1.interval = 1000
        timeleft = 5
        timer2.interval = 1000
        timer1.enabled = true
        timer2.enabled = true
    End Sub
Dann beim timer1:
Code:
timeleft = val(timeleft - 1)
dann brauchst du einen 2.timer:
Code:
if timeleft = 0 then
label1.visible = true
End IF
mfg
06/19/2010 18:13 Chain Reaction#4
Also Pain deins hat irgendwie nicht geklappt und das von killer hat geklappt.
Trotzdem Danke an euch beide.
06/19/2010 18:19 P-a-i-n#5
sry ich vergas das hätte oben noch hin müssen

Option Explicit On
Imports System.Windows.Forms
06/19/2010 18:33 Chain Reaction#6
Ja ich hab noch ne Frage :)

Ich hab das ja jetzt einmal so gemacht mit dem Timer, dass dann ein Label sichtbar wird.
Jetzt wollt ich das selbe nochmal machen.
Also wieder 2 Timer nehemen und dann wieder 3 Sekunden zählen lassen und dann ein Panel sichtbar machen lassen.
Geht aber nicht.
Die Form wird dann nicht nach 3 Sekunden sichtbar sondern sofort.

Kennst du eine Lösung?
06/19/2010 18:48 killeeer111#7
mfg
06/19/2010 19:04 Chain Reaction#8
Ja das klappt ja nicht.
Hab das so gemacht.
PHP Code:
Public Class Form1
    
    
Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click
       
        Timer1
.Start()
        
Label4.Visible True
    End Sub
    Dim timeleft 
As Integer
    
Private Sub Form1_Load(ByVal sender As System.ObjectByVal e As System.EventArgsHandles MyBase.Load
        
If Label5.Visible True Then
            Timer3
.Start()
            
Timer3.Interval 1000
            timeleft 
3
            Timer4
.Interval 1000
            Timer3
.Enabled False
            Timer4
.Enabled True

        End 
If
        
Timer1.Interval 1000
        timeleft 
5
        Timer2
.Interval 1000
        Timer1
.Enabled False
        Timer2
.Enabled True
        
If Label5.Visible True Then Timer3.Start()


    
End Sub

    
Private Sub Timer1_Tick(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Timer1.Tick
       
        timeleft 
Val(timeleft 1)
    
End Sub

    
Private Sub Timer2_Tick(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Timer2.Tick
        
If timeleft 0 Then
            Label4
.Visible False
            
If Label4.Visible False Then
                Label5
.Visible True
                
If Label5.Visible True Then Button1.Enabled False
                
If Label5.Visible True Then Timer1.Stop()





            
End If
        
End If
    
End Sub

    
Private Sub Timer3_Tick(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Timer3.Tick

        timeleft 
Val(timeleft 1)
    
End Sub

    
Private Sub Timer4_Tick(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Timer4.Tick
        
If timeleft 0 Then
            Panel1
.Visible True
        End 
If
    
End Sub
End 
Class 
Nachdem Label5 sichtbar wurde, passiert nichts mehr, obwohl dann eig nach 3 Sekunden Panel1 sichtbar werden soll.
Was ist daran falsch?
06/19/2010 19:07 killeeer111#9
ich glaub nicht, das da ein error drin ist.
standartmäßig hat ein panel die selbe farbe wie die form
06/19/2010 19:08 Chain Reaction#10
Ja ich hab eine Picturebox mit einem Bild
und die form hat eine schwarze farbe.
Von daher muss da was falsch sein.
06/19/2010 19:12 killeeer111#11
schick mir mal das proj. bzw. uploade es bei rapidshare, megaupload oder so und schick mir link, ich guck mir das mal an wo fehler ist.
06/19/2010 19:21 Chain Reaction#12
Is das die richtige Datei?[Only registered and activated users can see links. Click Here To Register...]
06/19/2010 19:27 killeeer111#13
ne :D
standartmäßig ist es im dokumente ordner, dh :
C:\Users\Deinname\Documents\Visual Studio 2008/2010 (unter win 7)
und da suchst du den ordner von deinem projekt und den packst du in zip oder rar, und dann ladest hoch
06/19/2010 19:48 Chain Reaction#14
Achso :D [Only registered and activated users can see links. Click Here To Register...]
06/19/2010 20:09 killeeer111#15
also ich habs jetzt nicht im source ausgebessert, aber ich weis dein problem: