"warten"-Befehl in Visual Basic 2010

04/25/2011 14:26 Breazzy#1
Hallo Leute =)

Bin seid neuestem zu den Bereich <Coden> übergetreten und muss jetzt

schon mit den ersten Problemen kämpfen :P

Meine Frage gibts einen Befehl für VB der VB warten lässt vor der nächsten Aktion ?

Zum Beispiel:

Me.BackColor = Color.Blue Hintergrund Blau
2 Sekunden warten
Me.BackColor = Color.Red Hintergrund Rot
2 Sekunden warten
Me.BackColor = Color.Black

04/25/2011 14:32 Kraizy​#2
Eine Möglichkeit wäre:
PHP Code:
Private state As Integer 0
Private Sub Timer_Tick (...) Handles Timer.Tick
   state 
+= 1   
   Select 
Case state
      
Case 1
         Me
.BackColor Color.Blue
      
Case 2
         Me
.BackColor Color.Red
      
Case 3
         Me
.BackColor Color.Black
         state 
0
   End Select
End Sub 
Oder du stoppst bei "Case 3" den Timer, wenn du keine Schleife haben möchtest..
Geht aber natürlich auch mit einer Loop-Schleife + Sleep-Funktion, einfach mal danach googlen...
04/25/2011 14:58 Ronox#3
Code:
Me.BackColor = Color.Blue Hintergrund Blau
Thread.Sleep(2000)
Me.BackColor = Color.Red Hintergrund Rot
Thread.Sleep(2000)
Me.BackColor = Color.Black
Das wäre die Zweite Methode die xKraizy erwähnt hatte.
04/25/2011 15:42 Kraizy​#4
Quote:
Originally Posted by Ronox View Post
Das wäre die Zweite Methode die xKraizy erwähnt hatte.
Wenn du das benutzen willst, dann führ das in einem extra Thread aus, sonst reagiert deine Form nicht, wenn du die Sleep-Funktion benutzt. Kleines Beispiel (aus dem Kopf, muss nicht zu 100% stimmen..)
PHP Code:
Private Sub Button_Click (...) Handles Button.Click
   Dim WechselnThread 
As Threading.Thread = New Threading.Thread(AddressOf Wechseln)
   
WechselnThread.Start()
End Sub

Sub Wechseln
()
   Do
      
Me.BackColor Color.Blue
      Threading
.Thread.Sleep(2000)
      
Me.BackColor Color.Red
      Threading
.Thread.Sleep(2000)
      
Me.BackColor Color.Black
   Loop
End Sub 
Das Do/Loop kannste entfernen, wenn du keine Endlosschleife haben willst, oder du stoppst den Thread per "WechselnThread.Abort()".
04/25/2011 22:09 Breazzy#5
thx :D

#close request
04/30/2011 03:18 BigJk#6
Me.BackColor = Color.Blue Hintergrund Blau
Thread.Sleep(2000)
Me.BackColor = Color.Red Hintergrund Rot
Thread.Sleep(2000)
Me.BackColor = Color.Black

ist schlecht weil dan die Form komplett stil steht als wäre sie abgestürzt. Daher hab da noch was, benutz ich immer. Hab ich irgendwan mal im Internet gefunden und schon in vielen Programmen genutzt:


Ergebniss:


Hier kann man auch während des Wartens noch weiter etwas eingeben oder buttons klicken, also Form läuft weiter :D

MFG BigJk
04/30/2011 12:25 Kraizy​#7
@BigJk genau das gleiche wurde 2 Posts über dir gepostet.
Achja, und DoEvents() benutzt man nicht mehr..
05/05/2011 16:12 .CoKe_WaVe#8
Pirivate state As Integer = 0
Private Sub Timer_Tick (.) Handles Timer.Tick
state += 1
Select Case state
Case 1
Me.BackColor = Color.Blue
Case 2
Me.BackColor = Color.Red
Case 3
Me.BackColor = Color.Black
state = 0

End Select
End Sub
05/06/2011 13:29 SpinnenGetier#9
Gib mal deinen Threadtitel bei Google ein und Tacker dir die Resultate auf die Stirn...
05/06/2011 14:45 Kraizy​#10
Quote:
Originally Posted by .CoKe_WaVe View Post
Pirivate state As Integer = 0
Private Sub Timer_Tick (.) Handles Timer.Tick
state += 1
Select Case state
Case 1
Me.BackColor = Color.Blue
Case 2
Me.BackColor = Color.Red
Case 3
Me.BackColor = Color.Black
state = 0

End Select
End Sub
[Only registered and activated users can see links. Click Here To Register...]
05/06/2011 15:50 .CoKe_WaVe#11
^^