Ma pause s'éffectue avant l'éxécution du code la précédant
Arnor2000
Messages postés32Date d'inscriptionmercredi 17 mars 2004StatutMembreDernière intervention24 novembre 2004
-
28 avril 2004 à 02:26
Arnor2000
Messages postés32Date d'inscriptionmercredi 17 mars 2004StatutMembreDernière intervention24 novembre 2004
-
29 avril 2004 à 00:56
Bonjour,
J'ai cette procédure :
Sub Pause(p As Integer, Delai As Integer)
Dim Debut As Long
'met en rouge l'écran du joueur qui va jouer et fait une pause
Plateau(p).BackColor = &HFF&
Beep
Debut = Timer
Do While Timer < Debut + Delai
lblTemps = Timer 'Pour témoin
Loop
Beep
Plateau(p).BackColor = &H8000000F
End Sub
Le but de cette procédure est de mettre en rouge le plateau de jeu du joueur p, de faire une pause de longueur Delai et de remettre le plateau de la couleur normale.
Le problème viens du fait que l'on ne vois pas le plateau se mettre en rouge. En fait le formulaire n'a pas l'air d'être réactualisé car lblTemps que j'ai mis comme témoin n'est pas du tout modifier lui non plus.
Par contre si je met un point d'arrêt sur Debut Timer ou à l'intérieur de ma boucle sur lblTemps Timer, à ce moment là le formulaire est réactualisé : le plateau deviens rouge et lblTemps affiche le temps du timer.
Vraiment bizarre.
Au départ j'utilisais la fonction sleep et ca me faisait la même chose alors c'est pas ca la solution...
J'ai l'impression que c'est un bug de vb et si s'en est un je veux bien que quelqu'un m'aide à le contourner !
Merci beaucoup d'avance !
A voir également:
Ma pause s'éffectue avant l'éxécution du code la précédant
Arnor2000
Messages postés32Date d'inscriptionmercredi 17 mars 2004StatutMembreDernière intervention24 novembre 2004 28 avril 2004 à 13:15
Comme je l'ai dis à la fin de mon message, au début j'utilisais la fonction sleep et comme ca faisait ce problème j'ai fini par changer pour mieux maitriser toutes les facteurs, vu que la fonction timer renvoie seulement le nombre de seconde écoulée depuis minuit, c'est plus sûr, mais ca ne marche pas quand même...
Arnor2000
Messages postés32Date d'inscriptionmercredi 17 mars 2004StatutMembreDernière intervention24 novembre 2004 28 avril 2004 à 22:00
En fait ma pause s'éxécute même avant un msgbox placé deux procédures plus tot !
Normalement je dois avoir mon msgbox qui s'affiche et le code s'arrête tant que je n'ai pas appuyer sur son bouton OK, mais là ma procédure pause s'éxécute et ensuite mon msgbox !
Il faut donc raffraichir sa form à la main en utilisant la fonction UpdateWindow décrite là :
http://www.progotop.com/api.php?id=197 qui a besoin besoin du numéro de la form (souvent c'est 1) à raffraichir que l'ont peut obtenir avec la fonction GetActiveWindow décrite ici :
http://www.progotop.com/api.php?id=56 et le tour est joué !
Merci beaucoup à Dark Sidious pour son site qui m'a vraiment aidé !