[R] Tester la durée du clic sur un bouton
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
-
pierrotm777
- Membre émérite

- Messages : 770
- Enregistré le : sam. 11 oct. 2008 14:44
- Localisation : Bordeaux
- Status : Hors ligne
[R] Tester la durée du clic sur un bouton
Bonjour à tous,
Existe t-il une solution qui permettraiit de tester si l'on appuie longuement sur un bouton.
Le but étant d'avoir deux actions pour un même bouton, une suit à un click, une autre suite à un bouton cliqué et tenu !
Merci par avance de votre aide
Existe t-il une solution qui permettraiit de tester si l'on appuie longuement sur un bouton.
Le but étant d'avoir deux actions pour un même bouton, une suit à un click, une autre suite à un bouton cliqué et tenu !
Merci par avance de votre aide
- Tlem
- Site Admin

- Messages : 11798
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Tester si l'on click longuement sur un bouton
En faisant simple, je dirait que _IsPressed suffit largement.
Faites la détection de l'appui sur la touche donnée et exécutez 'un compteur' qui s'incrémentera ou alors utilisez TimerInit puis une boucle, etc ...
Bref vous avez le choix.
Après en plus poussé, vous avez l'utilisation d'une CallBack telle que GUIRegisterMsg, mais c'est déjà un chouilla plus complexe.
Faites la détection de l'appui sur la touche donnée et exécutez 'un compteur' qui s'incrémentera ou alors utilisez TimerInit puis une boucle, etc ...
Bref vous avez le choix.
Après en plus poussé, vous avez l'utilisation d'une CallBack telle que GUIRegisterMsg, mais c'est déjà un chouilla plus complexe.
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Re: [..] Tester si l'on click longuement sur un bouton
un bouton n'est pas forcément une touche clavier.
c'est pourquoi je vais poser cette question
c'est quoi l’équivalent de _IsPressed si il s'agit d'un bouton de gui.
merci et bonne journée
c'est pourquoi je vais poser cette question
c'est quoi l’équivalent de _IsPressed si il s'agit d'un bouton de gui.
merci et bonne journée
- Tlem
- Site Admin

- Messages : 11798
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Tester si l'on click longuement sur un bouton
_IsPressed fonctionne pour le clavier, mais pour la souris aussi ...
Comme pour cliquer sur un bouton, on utilise le clic de souris, il suffit de capturer le temps pendant lequel le clic est appuyé.
Ceci dit, en utilisant GUIGetMsg(1) (mode avancé), il est possible de capturer les événements :

Comme pour cliquer sur un bouton, on utilise le clic de souris, il suffit de capturer le temps pendant lequel le clic est appuyé.
Ceci dit, en utilisant GUIGetMsg(1) (mode avancé), il est possible de capturer les événements :
- $GUI_EVENT_PRIMARYDOWN
$GUI_EVENT_PRIMARYUP
$GUI_EVENT_SECONDARYDOWN
$GUI_EVENT_SECONDARYUP
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
-
SurPriseS
- Niveau 6

- Messages : 291
- Enregistré le : jeu. 06 sept. 2007 11:35
- Localisation : Finistère sud
- Status : Hors ligne
Re: [..] Tester si l'on click longuement sur un bouton
La fonction que j'utilise, c'est moche, mais sa marche...
Code : Tout sélectionner
func _next()
while 1
$p = 0
For $i = 1 to 15
If _IsPressed ("01", $dll) Then
sleep(10)
$p = $p + 1
EndIf
Next
if $p = 15 Then
$current = _BASS_ChannelGetPosition ($MusicHandle, $BASS_POS_BYTE)
$current = $current + 500000
_BASS_ChannelSetPosition ($MusicHandle, $current , $BASS_POS_BYTE + $BASS_MUSIC_POSRESET)
$m = 1
Else
if $m = 0 Then
_BASS_ChannelStop ($MusicHandle)
send("{DOWN}")
_play(1)
_play_pause(2)
ExitLoop
Else
ExitLoop
EndIf
EndIf
WEnd
$m = 0
EndFuncRe: [..] Tester si l'on click longuement sur un bouton
N'oubliez pas de passer en résolu si tout est bien dans le meilleur des mondes.
-
pierrotm777
- Membre émérite

- Messages : 770
- Enregistré le : sam. 11 oct. 2008 14:44
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Tester si l'on click longuement sur un bouton
Ce n'est pas encore résolu car je suis en train de me creuser les méninges dessus 
Modifié en dernier par pierrotm777 le ven. 10 juin 2011 18:29, modifié 1 fois.
- Tlem
- Site Admin

- Messages : 11798
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Tester si l'on click longuement sur un bouton
Voici un modèle basé sur ce que j'ai dit :
Ceci dit, si vous devez en plus connaitre l'ID du bouton, cela ce complique. Il faudra rajouter l'appel à une CallBack. 
► Afficher le texte
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
-
pierrotm777
- Membre émérite

- Messages : 770
- Enregistré le : sam. 11 oct. 2008 14:44
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Tester si l'on click longuement sur un bouton
C'est parfait Tlem je vais adapter cela à mon besoin.
Merci
Merci
-
pierrotm777
- Membre émérite

- Messages : 770
- Enregistré le : sam. 11 oct. 2008 14:44
- Localisation : Bordeaux
- Status : Hors ligne
Re: [R] Tester la durée du clic sur un bouton
Aprés essai, mon besoin est légèrement différent de ce que vous me proposez !
Je souhaiterais en fait que le test se fasse sur la durée d'un bouton tenu et non sur une durée puis la levée du bouton !
J'ai donc tenté cela, mais sans succés!
Avec une action A si le bouton est appuyé puis relaché de suite et une action B si le bouton est maintenu appuyé plus de 2 secondes .
Je souhaiterais en fait que le test se fasse sur la durée d'un bouton tenu et non sur une durée puis la levée du bouton !
J'ai donc tenté cela, mais sans succés!
► Afficher le texte
-
pierrotm777
- Membre émérite

- Messages : 770
- Enregistré le : sam. 11 oct. 2008 14:44
- Localisation : Bordeaux
- Status : Hors ligne
Re: [R] Tester la durée du clic sur un bouton
Bon , j'ai travaillé un peu le sujet afin de l'adapter à mon type de Gui PNG et voici le résultat:
Cliquez dans les rectangles rouges pour tester un click court ou long.
Je prend comme hypothèse qu'un click long est supérieur à 1 seconde
Cliquez dans les rectangles rouges pour tester un click court ou long.
Je prend comme hypothèse qu'un click long est supérieur à 1 seconde
- Fichiers joints
-
- OverlayMenu.zip
- (47.88 Kio) Téléchargé 107 fois


