j'ai un feu de départ qui réagi comme ceux en F1 a base de shape
un feu rouge allume
deux
trois
tous eteint et feu vert s'allume
je n'arrive pas à faire en sorte qu'entre chaque feu rouge il y ai une
seconde d'attente ?!?
j'ai essayé wait... soit je l'utilise mal, soit ca n'est pas la bonne
fonction ;(
pendant ce feu, j'ai un comportement chopant des impulsions sur le port
parallele (détectant par exemple les faux départ) qui doit pouvoir
fonctionner et être actif
merci d'avance pour les pistes (sans jeu de mot!) de recherche!
"Jonathan" a écrit dans le message de news:3fbb58e6$0$229$
Il faut utilisez l'API Sleep
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Private Sub Command1_Click()
5 sec."
'Sleep for 5000 milliseconds
Sleep 5000
Me.Caption = ""
End Sub
Private Sub Form_Load()
Me.Caption = ""
Command1.Caption = "Sleep ..."
End Sub
Clive Lumb
Hello Johnny, Je ne crois pas que les evenements sur le port parallèle seront captés pendant un Sleep. Dans ce cas il faudrait plutot mettre trois timers sur la feuille, un pour chaque feu
Go! On allume le feu rouge timer1.enabled=true Quand timer1 s'enclenche, il éteint le feu rouge, allume le jaune, active timer2 et se désactive Quand timer2 s'enclenche, il éteint le feu jaune, allume le vert, active timer3, met un drapeau (sic) à vrai et se désactive Quand timer3 s'enclenche, il éteint le feu vert pour faire propre, et se désactive
Dans le programme principal on met un boucle (avec un Doevents dedans) qui tourne tant que le drapeau n'est pas vrai et tant qu'il n'y a pas d'activité sur le port parallèle.
Clive
"Elicend_News" a écrit dans le message de news:3fbb6236$0$27042$
je te remercie !
"Jonathan" a écrit dans le message de news:3fbb58e6$0$229$ > Il faut utilisez l'API Sleep > > Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) > Private Sub Command1_Click() > > 5 sec." > > 'Sleep for 5000 milliseconds > > Sleep 5000 > > Me.Caption = "" > > End Sub > > > > > > Private Sub Form_Load() > > Me.Caption = "" > > Command1.Caption = "Sleep ..." > > End Sub > >
Hello Johnny,
Je ne crois pas que les evenements sur le port parallèle seront captés
pendant un Sleep.
Dans ce cas il faudrait plutot mettre trois timers sur la feuille, un pour
chaque feu
Go!
On allume le feu rouge
timer1.enabled=true
Quand timer1 s'enclenche, il éteint le feu rouge, allume le jaune, active
timer2 et se désactive
Quand timer2 s'enclenche, il éteint le feu jaune, allume le vert, active
timer3, met un drapeau (sic) à vrai et se désactive
Quand timer3 s'enclenche, il éteint le feu vert pour faire propre, et se
désactive
Dans le programme principal on met un boucle (avec un Doevents dedans) qui
tourne tant que le drapeau n'est pas vrai et tant qu'il n'y a pas d'activité
sur le port parallèle.
Clive
"Elicend_News" <elice.end@free.fr> a écrit dans le message de
news:3fbb6236$0$27042$626a54ce@news.free.fr...
je te remercie !
"Jonathan" <SANSSPAMSVPduprejonathan@yahoo.fr> a écrit dans le message de
news:3fbb58e6$0$229$636a55ce@news.free.fr...
> Il faut utilisez l'API Sleep
>
> Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
> Private Sub Command1_Click()
>
> 5 sec."
>
> 'Sleep for 5000 milliseconds
>
> Sleep 5000
>
> Me.Caption = ""
>
> End Sub
>
>
>
>
>
> Private Sub Form_Load()
>
> Me.Caption = ""
>
> Command1.Caption = "Sleep ..."
>
> End Sub
>
>
Hello Johnny, Je ne crois pas que les evenements sur le port parallèle seront captés pendant un Sleep. Dans ce cas il faudrait plutot mettre trois timers sur la feuille, un pour chaque feu
Go! On allume le feu rouge timer1.enabled=true Quand timer1 s'enclenche, il éteint le feu rouge, allume le jaune, active timer2 et se désactive Quand timer2 s'enclenche, il éteint le feu jaune, allume le vert, active timer3, met un drapeau (sic) à vrai et se désactive Quand timer3 s'enclenche, il éteint le feu vert pour faire propre, et se désactive
Dans le programme principal on met un boucle (avec un Doevents dedans) qui tourne tant que le drapeau n'est pas vrai et tant qu'il n'y a pas d'activité sur le port parallèle.
Clive
"Elicend_News" a écrit dans le message de news:3fbb6236$0$27042$
je te remercie !
"Jonathan" a écrit dans le message de news:3fbb58e6$0$229$ > Il faut utilisez l'API Sleep > > Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) > Private Sub Command1_Click() > > 5 sec." > > 'Sleep for 5000 milliseconds > > Sleep 5000 > > Me.Caption = "" > > End Sub > > > > > > Private Sub Form_Load() > > Me.Caption = "" > > Command1.Caption = "Sleep ..." > > End Sub > >
Elicend_News
arf... merci ! la premiere solution me parraissait plus "simple"...
avec cette deuxieme methode on se rapproche de ce quej'avais bidouillé, a savoir, un timer qui incremente de seconde en seconde, et un select case sur la valeur des secondes, mais... c'etait vraiment pas top j'ai trouvé...
je vais essayer les deux ce soir
merci :)
"Clive Lumb" a écrit dans le message de news:uCI$
Hello Johnny, Je ne crois pas que les evenements sur le port parallèle seront captés pendant un Sleep. Dans ce cas il faudrait plutot mettre trois timers sur la feuille, un pour chaque feu
Go! On allume le feu rouge timer1.enabled=true Quand timer1 s'enclenche, il éteint le feu rouge, allume le jaune, active timer2 et se désactive Quand timer2 s'enclenche, il éteint le feu jaune, allume le vert, active timer3, met un drapeau (sic) à vrai et se désactive Quand timer3 s'enclenche, il éteint le feu vert pour faire propre, et se désactive
Dans le programme principal on met un boucle (avec un Doevents dedans) qui tourne tant que le drapeau n'est pas vrai et tant qu'il n'y a pas
d'activité
sur le port parallèle.
Clive
"Elicend_News" a écrit dans le message de news:3fbb6236$0$27042$ > je te remercie ! > > "Jonathan" a écrit dans le message
de
> news:3fbb58e6$0$229$ > > Il faut utilisez l'API Sleep > > > > Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As
arf... merci !
la premiere solution me parraissait plus "simple"...
avec cette deuxieme methode on se rapproche de ce quej'avais bidouillé, a
savoir, un timer qui incremente de seconde en seconde, et un select case sur
la valeur des secondes, mais... c'etait vraiment pas top j'ai trouvé...
je vais essayer les deux ce soir
merci :)
"Clive Lumb" <clumb@free.fr> a écrit dans le message de
news:uCI$8AqrDHA.2004@TK2MSFTNGP10.phx.gbl...
Hello Johnny,
Je ne crois pas que les evenements sur le port parallèle seront captés
pendant un Sleep.
Dans ce cas il faudrait plutot mettre trois timers sur la feuille, un pour
chaque feu
Go!
On allume le feu rouge
timer1.enabled=true
Quand timer1 s'enclenche, il éteint le feu rouge, allume le jaune, active
timer2 et se désactive
Quand timer2 s'enclenche, il éteint le feu jaune, allume le vert, active
timer3, met un drapeau (sic) à vrai et se désactive
Quand timer3 s'enclenche, il éteint le feu vert pour faire propre, et se
désactive
Dans le programme principal on met un boucle (avec un Doevents dedans) qui
tourne tant que le drapeau n'est pas vrai et tant qu'il n'y a pas
d'activité
sur le port parallèle.
Clive
"Elicend_News" <elice.end@free.fr> a écrit dans le message de
news:3fbb6236$0$27042$626a54ce@news.free.fr...
> je te remercie !
>
> "Jonathan" <SANSSPAMSVPduprejonathan@yahoo.fr> a écrit dans le message
de
> news:3fbb58e6$0$229$636a55ce@news.free.fr...
> > Il faut utilisez l'API Sleep
> >
> > Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As
arf... merci ! la premiere solution me parraissait plus "simple"...
avec cette deuxieme methode on se rapproche de ce quej'avais bidouillé, a savoir, un timer qui incremente de seconde en seconde, et un select case sur la valeur des secondes, mais... c'etait vraiment pas top j'ai trouvé...
je vais essayer les deux ce soir
merci :)
"Clive Lumb" a écrit dans le message de news:uCI$
Hello Johnny, Je ne crois pas que les evenements sur le port parallèle seront captés pendant un Sleep. Dans ce cas il faudrait plutot mettre trois timers sur la feuille, un pour chaque feu
Go! On allume le feu rouge timer1.enabled=true Quand timer1 s'enclenche, il éteint le feu rouge, allume le jaune, active timer2 et se désactive Quand timer2 s'enclenche, il éteint le feu jaune, allume le vert, active timer3, met un drapeau (sic) à vrai et se désactive Quand timer3 s'enclenche, il éteint le feu vert pour faire propre, et se désactive
Dans le programme principal on met un boucle (avec un Doevents dedans) qui tourne tant que le drapeau n'est pas vrai et tant qu'il n'y a pas
d'activité
sur le port parallèle.
Clive
"Elicend_News" a écrit dans le message de news:3fbb6236$0$27042$ > je te remercie ! > > "Jonathan" a écrit dans le message
de
> news:3fbb58e6$0$229$ > > Il faut utilisez l'API Sleep > > > > Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As
Pourquoi pas un seul simplement alors avec une variable tu gardes le feu en cours Dim As as integer 'Varible contenant le feu à eclairer A = 1,2,3 pour Rouge, Jaune, Vert :
Private Sub Timer1_Timer() Select Case A Case 1 Eteindre Vert + jaune et allumer rouge Case 2 Eteindre rouge + vert et allumer jaune Case 3 Eteindre rouge + jaune et allumer vert End select End sub
Pourquoi pas un seul simplement alors avec une variable tu gardes le feu en
cours
Dim As as integer 'Varible contenant le feu à eclairer
A = 1,2,3 pour Rouge, Jaune, Vert :
Private Sub Timer1_Timer()
Select Case A
Case 1
Eteindre Vert + jaune et allumer rouge
Case 2
Eteindre rouge + vert et allumer jaune
Case 3
Eteindre rouge + jaune et allumer vert
End select
End sub
Pourquoi pas un seul simplement alors avec une variable tu gardes le feu en cours Dim As as integer 'Varible contenant le feu à eclairer A = 1,2,3 pour Rouge, Jaune, Vert :
Private Sub Timer1_Timer() Select Case A Case 1 Eteindre Vert + jaune et allumer rouge Case 2 Eteindre rouge + vert et allumer jaune Case 3 Eteindre rouge + jaune et allumer vert End select End sub
Clive Lumb
Cela marchera, mais je m'étais dit qu'à partir d'un "top" d'allumer moteurs le feu pourrait rester au rouge assez longtemps, puis la séquence de départ doit se passer avec 1 seconde entre chaque. Dans ce cas avec ta solution il faudrait modifier l'intervalle du timer. J'améliore en même temps ton code A=1 Timer1.enabled=true While A<>4 doevents if Check_port_parallele then A=4 Timer1.enabledúlse endif Wend
Private Sub Timer1_Timer() Select Case A Case =1 Eteindre Vert + jaune et allumer rouge A=2 Case =2 Eteindre rouge + vert et allumer jaune A=3 Case =3 Eteindre rouge + jaune et allumer vert A=4 Case =4 timer1.enabledúlse
End select End sub
"Jonathan" a écrit dans le message de news:3fbb7294$0$252$
Pourquoi pas un seul simplement alors avec une variable tu gardes le feu
en
cours Dim As as integer 'Varible contenant le feu à eclairer A = 1,2,3 pour Rouge, Jaune, Vert :
Private Sub Timer1_Timer() Select Case A Case 1 Eteindre Vert + jaune et allumer rouge Case 2 Eteindre rouge + vert et allumer jaune Case 3 Eteindre rouge + jaune et allumer vert End select End sub
Cela marchera, mais je m'étais dit qu'à partir d'un "top" d'allumer moteurs
le feu pourrait rester au rouge assez longtemps, puis la séquence de départ
doit se passer avec 1 seconde entre chaque. Dans ce cas avec ta solution il
faudrait modifier l'intervalle du timer.
J'améliore en même temps ton code
A=1
Timer1.enabled=true
While A<>4
doevents
if Check_port_parallele then
A=4
Timer1.enabledúlse
endif
Wend
Private Sub Timer1_Timer()
Select Case A
Case =1
Eteindre Vert + jaune et allumer rouge
A=2
Case =2
Eteindre rouge + vert et allumer jaune
A=3
Case =3
Eteindre rouge + jaune et allumer vert
A=4
Case =4
timer1.enabledúlse
End select
End sub
"Jonathan" <SANSSPAMSVPduprejonathan@yahoo.fr> a écrit dans le message de
news:3fbb7294$0$252$636a55ce@news.free.fr...
Pourquoi pas un seul simplement alors avec une variable tu gardes le feu
en
cours
Dim As as integer 'Varible contenant le feu à eclairer
A = 1,2,3 pour Rouge, Jaune, Vert :
Private Sub Timer1_Timer()
Select Case A
Case 1
Eteindre Vert + jaune et allumer rouge
Case 2
Eteindre rouge + vert et allumer jaune
Case 3
Eteindre rouge + jaune et allumer vert
End select
End sub
Cela marchera, mais je m'étais dit qu'à partir d'un "top" d'allumer moteurs le feu pourrait rester au rouge assez longtemps, puis la séquence de départ doit se passer avec 1 seconde entre chaque. Dans ce cas avec ta solution il faudrait modifier l'intervalle du timer. J'améliore en même temps ton code A=1 Timer1.enabled=true While A<>4 doevents if Check_port_parallele then A=4 Timer1.enabledúlse endif Wend
Private Sub Timer1_Timer() Select Case A Case =1 Eteindre Vert + jaune et allumer rouge A=2 Case =2 Eteindre rouge + vert et allumer jaune A=3 Case =3 Eteindre rouge + jaune et allumer vert A=4 Case =4 timer1.enabledúlse
End select End sub
"Jonathan" a écrit dans le message de news:3fbb7294$0$252$
Pourquoi pas un seul simplement alors avec une variable tu gardes le feu
en
cours Dim As as integer 'Varible contenant le feu à eclairer A = 1,2,3 pour Rouge, Jaune, Vert :
Private Sub Timer1_Timer() Select Case A Case 1 Eteindre Vert + jaune et allumer rouge Case 2 Eteindre rouge + vert et allumer jaune Case 3 Eteindre rouge + jaune et allumer vert End select End sub
Elicend_News
ben c'etait ca ;)
"Jonathan" a écrit dans le message de news:3fbb7294$0$252$
Pourquoi pas un seul simplement alors avec une variable tu gardes le feu
en
cours Dim As as integer 'Varible contenant le feu à eclairer A = 1,2,3 pour Rouge, Jaune, Vert :
Private Sub Timer1_Timer() Select Case A Case 1 Eteindre Vert + jaune et allumer rouge Case 2 Eteindre rouge + vert et allumer jaune Case 3 Eteindre rouge + jaune et allumer vert End select End sub
ben c'etait ca ;)
"Jonathan" <SANSSPAMSVPduprejonathan@yahoo.fr> a écrit dans le message de
news:3fbb7294$0$252$636a55ce@news.free.fr...
Pourquoi pas un seul simplement alors avec une variable tu gardes le feu
en
cours
Dim As as integer 'Varible contenant le feu à eclairer
A = 1,2,3 pour Rouge, Jaune, Vert :
Private Sub Timer1_Timer()
Select Case A
Case 1
Eteindre Vert + jaune et allumer rouge
Case 2
Eteindre rouge + vert et allumer jaune
Case 3
Eteindre rouge + jaune et allumer vert
End select
End sub
"Jonathan" a écrit dans le message de news:3fbb7294$0$252$
Pourquoi pas un seul simplement alors avec une variable tu gardes le feu
en
cours Dim As as integer 'Varible contenant le feu à eclairer A = 1,2,3 pour Rouge, Jaune, Vert :
Private Sub Timer1_Timer() Select Case A Case 1 Eteindre Vert + jaune et allumer rouge Case 2 Eteindre rouge + vert et allumer jaune Case 3 Eteindre rouge + jaune et allumer vert End select End sub