Timer : le faire démarrer immediatement

Résolu
Messages postés
29
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
21 septembre 2008
-
Messages postés
29
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
21 septembre 2008
-
Bonjour

J'ai beau chercher...
Comment faire pour que le code contenu dans le timer d'execute dès que la propriété enable = true ?

Je les utilise parfois avec des intervalles de l'ordre de la minute : voila pourquoi

Snoopline

6 réponses

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
C'est tout simple, dans ton code, là ou tu mettais TonTimer.enabled=true,

maintenant tu mets call TonTimer_timer().



Et au début de ta procédure Timer, tu met

if TonTimer.enabled=false then TonTimer.enabled=true


en fait tu fais le premier appel manuellement, et c'est le premier appel lui même qui te valide le timer



(utilisé régulièrement, sans problème)



<hr size="2" width="100%">Si le cerveau était assez simple pour que nous puissions le comprendre,

nous serions assez bête pour ne pas le comprendre malgré tout.
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
timer est l'évènement que génère ton objet Timer, comme le Click pour un bouton ou le Load lors du chargement de ton écran.



Et donc la fonction appelée lors de la génération d'un évènement est de la forme



nomducontrole_évènement(paramètres)



ou pour un groupe de controle (comme tes timers)



nomdugroupedecontrole_évènement(indexcontrole , paramètres)



et bien sur, il peut ne pas y avoir de paramètres comme pour le timer par exemple






Dans ton cas (10 timers) pense à valider chacun des 10 timers

mais je trouve un peu oser d'utiliser une seul évènement pour 10
timers. Tout dépend de ce que tu as à faire mais je pense que j'aurai
plutot pris 10 timers différents.



<hr size="2" width="100%">Si le cerveau était assez simple pour que nous puissions le comprendre,

nous serions assez bête pour ne pas le comprendre malgré tout.
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
ça veut dire que quelque part dans ton programme il faut que tu fasse timer(x).enabled=true

et ça pour chacun des timers de ton goroupe de timer :



timer(0).enabled=true

timer(1).enabled=true

.............................



Tu n'es pas obligé de les lancer tous au même endroit dans ton code,
mais si tu oublie d'en validé un, il ne fonctionnera pas alors que les
autres continueront de fonctionner.



Voila, je sais pas si j'ai été très clair.





<hr size="2" width="100%">Si le cerveau était assez simple pour que nous puissions le comprendre,

nous serions assez bête pour ne pas le comprendre malgré tout.
Messages postés
29
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
21 septembre 2008

Merci Casy !

Cela marche effectivement sans problème.

Ton m'aide m'amène à une nouvelle question :

Mes timers sont en tableau : Timer1(0) jusqu'à Timer1(9)

Mon code initial call Timer1(index) provoqua un "invalid use of property"
Le code final (celui que tu proposes : mais que par étourderie j'ai mal recopié) : Timer1_timer(index) fonctionne.

A quoi sert cet _timer ?

merci, Snoopline
Messages postés
29
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
21 septembre 2008

merci pour ces info d'une portée très générale.

En fait je n'ai que 5 timers qui mettent en action des moteurs pas à pas de façon itérative.
A chaque moteur correspond un timer : même index

J'ai choisi cette solution car il est facile dans une feuille de créer ce type de timer indexé, ainsi que tout autre controle (permettant d'enclencher plusieurs types d'actions: stop moteur, sens inverse, pas complet, demis pas, etc).

Dans ton dernier post tu me conseilles de valider chacun des timers : que cela signifie t'il ?
Messages postés
29
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
21 septembre 2008

très clair.