Timer sur VB6

Résolu
cs_gilles74 Messages postés 9 Date d'inscription vendredi 10 octobre 2003 Statut Membre Dernière intervention 14 octobre 2005 - 13 oct. 2005 à 16:11
cs_gilles74 Messages postés 9 Date d'inscription vendredi 10 octobre 2003 Statut Membre Dernière intervention 14 octobre 2005 - 14 oct. 2005 à 08:14
Bonjour,
est ce que quelqu'un connait une solution simple pour créer un temporisateur (Precision 0.1s)?
Merci.

7 réponses

cs_Warning Messages postés 516 Date d'inscription samedi 3 février 2001 Statut Membre Dernière intervention 24 octobre 2006 2
14 oct. 2005 à 00:47
'########## Dans un module
Public Type SYSTEMTIME
wYear As Integer
wMonth As Integer
wDayOfWeek As Integer
wDay As Integer
wHour As Integer
wMinute As Integer
wSecond As Integer
wMilliseconds As Integer
End Type

Public Declare Sub GetSystemTime Lib "kernel32" (lpSystemTime As SYSTEMTIME)

'########## Avant ton code
Dim TimeSys As SYSTEMTIME, DecompilationTime As Long
GetSystemTime TimeSys
Dim Hours As Long
Hours = (TimeSys.wMinute + (TimeSys.wHour * 60))
DecompilationTime = TimeSys.wMilliseconds + (TimeSys.wSecond + Hours * 60) * 1000

'########" Code

'######### Après ton code
GetSystemTime TimeSys
Hours = (TimeSys.wMinute + (TimeSys.wHour * 60))
DecompilationTime = Abs(DecompilationTime - (TimeSys.wMilliseconds + (TimeSys.wSecond + Hours * 60) * 1000))


Warning
Admin Codes-Sources.com
http://www.decompiler-vb.net/
3
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
13 oct. 2005 à 16:20
En utilisant l'API Sleep





Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)





Appel :





Sleep 100 ' attend 0.1 seconde




Manu
-------------------------------------------
Une question bien posée, c'est une chance de réponse bien adaptée.
0
P__ROMEO Messages postés 294 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 9 mars 2006 1
13 oct. 2005 à 16:26
je suis daccord avec Econs, mais, pour quoi faire cette temporisation? parceque sleep, arrête entièrement toute "action" de l'application. pendant ces 0,1 seconde, ton programma doit-il exécuter une action?
0
cs_gilles74 Messages postés 9 Date d'inscription vendredi 10 octobre 2003 Statut Membre Dernière intervention 14 octobre 2005
13 oct. 2005 à 16:29
Merci pour la rapidité de la réponse.
Mais, ma question est mal posée. Dan mon appli, j'ai un switch case et sur chaque changement du pointeur, je voudrai lancer un temporisation pour controler depuis combien de temps je suis sur le nouveau case. (Une sorte de time out).
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
P__ROMEO Messages postés 294 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 9 mars 2006 1
13 oct. 2005 à 16:52
j'avoue que je n'ai pas d'idée. mais, je fouille dans ma bible. si de quoi t'aider, je te fais signe. (sûrment que plus initier t'aidera.)

Mais, aussi, pour quoi O,1 seconde!? pour quoi faire une temporisation pour verifier depuis combien de temps tu es sur le nouveau case, pour quoi ne pas le faire automatiquement. (et moi, quand tu dit depuis combien de temps tu es sur le nouveau case, je pense que tu veux dire, combien de temps tu a passé sur l'ancien case, "si non, je croi que la logique veu que quand tu passe sur un nouvel objet, et après 0,1s tu vex savoir depuis combien de temps tu y es, la reponse est 0,1s". )
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
13 oct. 2005 à 17:26
salut,
ta question n'est pas claire.
si le rapport est avec par exemple, la vitesse de calcul du mouvement de la souris (c'est ce que j'en ai compris) et pour répondre à ton idée de timer (qui n'aurait plus aucun intérêt pour autant), alors au mouvement de ta souris, tu met ton Timer enabled = true.

tu as 2 variables ~globales~, disons OldCase et NewCase (pour correspondre à ton SwitchCase)

ton interval est de 100 (donc 0,1s) et dans sa procédure : oldcase = newcase, newcase= ...ce que tu testes (position curseur par exemple).
si old = new then timer=false. voilà l'idée

++
PCPT
0
cs_gilles74 Messages postés 9 Date d'inscription vendredi 10 octobre 2003 Statut Membre Dernière intervention 14 octobre 2005
14 oct. 2005 à 08:14
Merci Warning, je vais essayer ta solution qui me semble OK.


Pour répondre à pcpt et p__romeo, je veux savoir combien de temps je reste sur un "Case". En fait, dans ce "Case", j'envois un ordre à un robot et j'attends une réponse de ce robot comme quoi il a bien recu cet ordre. Si au bout d'un temps donné (par exmple 10s) le robot ne m'a rien retourné, je veux alors déclencher une autre action.

La réponse de Warning me semble OK, sinon j'ai vu de mon coté qu'on pouvais utiliser Hitime32.ocx pour gérer des tempos.
0
Rejoignez-nous