Timer

Signaler
Messages postés
21
Date d'inscription
dimanche 20 octobre 2002
Statut
Membre
Dernière intervention
4 décembre 2004
-
Messages postés
21
Date d'inscription
dimanche 20 octobre 2002
Statut
Membre
Dernière intervention
4 décembre 2004
-
Bonjour voila j'ai un ptit souci je débute en VB et j'ai besoin d'un chtit coup de pouce,

je fais un programme proche de UOloop (les fans de Ultima Online doivent le connaitre) pour les autres le programme doit faire une action toute les X temps (en milliseconde) mais a partir du moment ou j'appuye sur le bouton start et ce jusqu'au moment ou j'appuye sur le button stop

je sais que je dois utiliser un timer mais je ne sais pas comment je dois l'utiliser ni le programmer mes buttons.

si quelqu'un pourrait m'aider ca serait gentil merci

Mc Ferson

5 réponses

Messages postés
2670
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
2
Salut,
Le but est très simple... tu mets un bouton stop et un bouton depart... quand tu clique sur le bouton depart, ca ctive le timer et quand tu clique sur stop ca le desactive..

Pour ce faire procede comme suit :

Private Sub Command1_Click()timer1.interval 1000 ' en miliseconde 1000 ms 1sec
timer1.enabled = true
End Sub

Private Sub Command2_Click()
timer1.enabled = false
End Sub

Voili voilou... Si t'as besoin d'un code prècis fais moi signe...

DeAtH_-_CrAsH
0
Messages postés
21
Date d'inscription
dimanche 20 octobre 2002
Statut
Membre
Dernière intervention
4 décembre 2004

oki, j'ai compris le principe mais ca marche pas comme je voudrais je joins mon code pour savoir quelle est la bétise que j'ai faites loll

Public counter As Integer
-------------------------------------------------------------------
Private Sub com_start_Click()
counter = -1
If Val(text_count) 0 Or IsNumeric(text_count) False Then 'Text_count contient le nombre de fois demandé
text_count_rest = "Infini"
Else
text_count_rest = text_count
counter = Val(text_count)
End If

com_stop.Enabled = True
combo_touche.Enabled = False
text_count.Enabled = False
text_delais.Enabled = False
com_start.Enabled = False

Timer1.Interval = Val(text_delais) 'text_delais contient le delais a tenir compte en milliseconde
if counter <> -1 then
Timer1.Enabled = True
end if

End Sub
-------------------------------------------------------------------
'il contient le traitement à faire tout les x temps
Private Sub Timer1_Timer()
Do While counter > 0
counter = counter - 1
text_count_rest = counter
Loop
End Sub

merci

Mc Ferson
0
Messages postés
21
Date d'inscription
dimanche 20 octobre 2002
Statut
Membre
Dernière intervention
4 décembre 2004

Le prob ici c'est qu'il doit décompter 1 a counter toute les X milliseconde, or ici la premiere fois il me attend bien les x seconde mais après il reste dans la boucle et décompte le reste sans tenir compte du délais....

Mc Ferson
0
Messages postés
36
Date d'inscription
mardi 3 décembre 2002
Statut
Membre
Dernière intervention
24 juin 2004

Je pense que ton problème est dans timer1_timer(),
en effet la première fois que ton temps en ms est
atteint, tout ton compteur est décompter à cause du do while
essai plutôt

Private Sub Timer1_Timer()
If counter > 0 then
counter = counter - 1
text_count_rest = counter
End if
End Sub

AraXeen
0
Messages postés
21
Date d'inscription
dimanche 20 octobre 2002
Statut
Membre
Dernière intervention
4 décembre 2004

Merci ca marche au poils :big)

Mc Ferson
0