Effectuer une pause total dans un mousedown [Résolu]

Signaler
Messages postés
43
Date d'inscription
mardi 21 septembre 2004
Statut
Membre
Dernière intervention
10 juillet 2017
-
Messages postés
43
Date d'inscription
mardi 21 septembre 2004
Statut
Membre
Dernière intervention
10 juillet 2017
-
Bonsoir,

J'ai repris un ancien de mes programmes en vb6. J'ai du mal a m'y remettre ca fait longtemps que je n'est pas programmer en vb6
Je voudrai mettre tout mes timer(12) en pause tant que je clique sur un bouton a l'aide de ma souris, donc tant que je suis dans la procedure mousedown.
J'ai deja essayer d'utiliser timer(index).enabled=false et dans la procedure mouseup timer(index).enabled=true mais du coup tout les timer reparte a zero.
Je voudrais que des que je clique et que je reste appuyer mes timers se mettent en pause puis reprenne ou y s'en etaient des que je lache le bouton...
Avez vous une astuce ?

Merci d'avance
Cordialement

9 réponses

Messages postés
693
Date d'inscription
samedi 18 mai 2002
Statut
Membre
Dernière intervention
17 avril 2017
2
Bonjour,

Tu n'as toujours pas répondu aux solutions qui t-on été données.
C'est bien de poser des questions, le forum est là pour cela, mais il serait convenant de bien vouloir indiquer si celles-ci te conviennent ou pas.

Cheyenne
Messages postés
14694
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
14 août 2020
144
Bonjour,

12 timers, ça semble beaucoup.
VB6 est dépassé, essayes plutôt de passer à .NET (VB.NET 2010 Express est gratuit

Sinon, il n'est pas possible de mettre en pause, c'est soit on, soit Off, mais tu peux aussi mettre une variable globale au module pour dire aux Timers de ne pas poursuivre leur travail.
Certains partiront de 0, les autres ne seront pas affectés.

Mon site
Messages postés
693
Date d'inscription
samedi 18 mai 2002
Statut
Membre
Dernière intervention
17 avril 2017
2
Bonjour,

Comme le dit NTHenry une variable globale suffit. Tu mets un boolean en global, par exemple bPause.

Dans MouseDown bPause = True
Dans MouseUp bPause = False
En début de chaque sub des Timer tu colles :
If bPause Then Exit Sub

Ainsi si tu as des variables en Static (ou pas) dans tes Timer elles ne varieront pas et ainsi à la reprise tu retrouveras l'état auquel elles étaient avant le MouseDown.

Cheyenne
Messages postés
693
Date d'inscription
samedi 18 mai 2002
Statut
Membre
Dernière intervention
17 avril 2017
2
Bonjour,

Si une des réponses convient, merci de bien vouloir la valider.


Cheyenne
Messages postés
14694
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
14 août 2020
144
Bonjour,

A la place de mettre un booléen en variable globale, le plus propre serait de jouer avec le Enabled du Timer.

Mon site
Messages postés
693
Date d'inscription
samedi 18 mai 2002
Statut
Membre
Dernière intervention
17 avril 2017
2
Bonsoir NHenry,

Oui, effectivement c'est plus propre.
Mais comme l'a indiqué centaure59 avec le Enabled à False il repart de 0.

Je pense que le mieux est de non seulement jouer avec Enabled mais aussi d'avoir une variable de comptage dans chaque Timer.
De ce fait l'état de chaque Timer serait sauvegardé à chaque arrêt.

Bon Dimanche à toi.

Cheyenne
Messages postés
14694
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
14 août 2020
144
Désolé, je crois que je me suis trompé de sujet pour la réponse, il y a une notification et je me suis trompé de sujet.
Messages postés
693
Date d'inscription
samedi 18 mai 2002
Statut
Membre
Dernière intervention
17 avril 2017
2
Re,

Trompé ou pas, tu es dans le sujet quand même.

Je reviens sur mon idée de variable Static dans les Timers. Mon idée est la suivante :
diviser l'Interval de chaque Timer par 2, 5 ou 10 selon la durée.
Par exemple pour un Interval de 500 on le mets à 50 et dans la Sub du Timer :

Static tic as Integer
tic = tic + 10
If tic = 50 Then
   tic = 0
   '   code à exécuter
End If

Ainsi chaque Timer pourrait reprendre à sa propre valeur après la remise à True de Enabled. Bonne ou mauvaise idée ?
Mais comme on ne sait pas ce qu'il fait avec ses 12 Timers, ce n'est pas évident de fournir une réponse adéquate.

Cheyenne
Messages postés
43
Date d'inscription
mardi 21 septembre 2004
Statut
Membre
Dernière intervention
10 juillet 2017

Bonjour et désolé pour la réponse tardive.
En déplacement pour le boulot, je n'est pas pu m'occuper de mes programmes, sniff !
J'ai fait une compil de vos réponse qui mon bien servi, en fait javais une procédure qui s'occuper d'envoyer les résultats
des timer vers le port paralele. En ajoutant une variable global et en controlant cette variable au début de la procédure
en question je ne l'exécute pas.
Merci pour votre qide