Myriad Forum « Mouse Button Release »
 Welcome, Guest.
 You can read all messages, but to be able to post,
 please Login or Register.
Mar 7th, 2021, 7:43am 
   Myriad Forum
   MyrScript Language
(Moderator: Forum Administrator)
   Mouse Button Release
« Previous topic | Next topic »
Pages: 1  Reply | Notify of replies | Print
   Author  Topic: Mouse Button Release  (Read 457 times)
Andre_B
Board Master
*****





   
Email

Gender: male
Posts: 1782
Mouse Button Release  
« on: Nov 25th, 2020, 8:22pm »
Quote | Modify

Dans un dialogue .myf, il y a une méthode "Release" qui s'actionne au moment où on relâche le bouton de la souris.  
 
Mais dans un dialogue dynamique (créé par NewDialog), peut-on aussi avoir une activation de quelque chose à ce même moment? L'idée est d'avoir la durée entre le clic et la fin du clic...  
 
Merci
offline

André Baeck, Belge vivant dans le Gard
Windows 10, HA 992e (et précédents)
bubu42
Board Master
*****





   


Gender: male
Posts: 9966
Re: Mouse Button Release  
« Reply #1 on: Nov 25th, 2020, 10:32pm »
Quote | Modify

Autrement dit, entre le Push et le Release, non ?
offline

Harmony Assistant - Ubuntu + Wine et Windows XP sur machine virtuelle. VS, OMeR, PDF2M
Andre_B
Board Master
*****





   
Email

Gender: male
Posts: 1782
Re: Mouse Button Release  
« Reply #2 on: Nov 26th, 2020, 4:31am »
Quote | Modify

En effet...
offline

André Baeck, Belge vivant dans le Gard
Windows 10, HA 992e (et précédents)
bubu42
Board Master
*****





   


Gender: male
Posts: 9966
Re: Mouse Button Release  
« Reply #3 on: Nov 26th, 2020, 10:55am »
Quote | Modify

Alors, peut-être une variable globale initialisée avec le temps T au Push et une soustraction de T au temps T1 du Release, un truc dans ce genre :
global T  
function Push
T=Application.TickCount()
end
function Release
print(T-Application.TickCount())
end
D'après le manuel, on a une précision au 1/60 de seconde.
offline

Harmony Assistant - Ubuntu + Wine et Windows XP sur machine virtuelle. VS, OMeR, PDF2M
Andre_B
Board Master
*****





   
Email

Gender: male
Posts: 1782
Re: Mouse Button Release  
« Reply #4 on: Nov 26th, 2020, 11:10am »
Quote | Modify

Merci Jean-Pierre,  
 
Oui, c'est ce que je fais plus ou moins jusqu'à présent avec deux appels successifs, mais comme je suis dans un .mys /NewDialog, ce sont des appels "Dialog.Select()". Et la précision c'est OK, je ne pourrai pas faire la différence entre 10 et 20 soixantièmes, par exemple.  
 
D'autre part, j'essaie de déplacer cela à l'intérieur d'un .myf (qui appelle un NewDialog car je dois "dessiner" dynamiquement), et là je remarque ceci (pas encore eu l'occasion de creuser).  
 
J'ai des méthodes Push(dialog,item) et Release(id)  sur un Button, qui chacune ne font, pour le moment, qu'un print.  
 
Tout Release est évidemment précédé d'un Push. Mais rien n'apparaît avant le Release. Comme si le Push aussi n'était activé que lorsqu'on lâche le bouton. Ce n'est pas une simple quesion d'affichage, si je mets un exit() dans le Push, il ne s'exécute qu'au Release. Ce qui ne devrait pas me permettre de mesurer la durée de l'enfoncement du bouton de souris...
offline

André Baeck, Belge vivant dans le Gard
Windows 10, HA 992e (et précédents)
Daniel Frouvelle
Board Master
*****






   
WWW | Email

Gender: male
Posts: 1481
Re: Mouse Button Release  
« Reply #5 on: Nov 26th, 2020, 11:24am »
Quote | Modify

Bonjour André, pour ma part il y a longtemps que je n'utilise plus les objets "Button", à la place je détecte dans un Idle l'état de la souris avec Application.GetMouseButton()  
Si tu as besoin je peux t'envoyer un exemple.
Amistats, Danièl.
offline
Andre_B
Board Master
*****





   
Email

Gender: male
Posts: 1782
Re: Mouse Button Release  
« Reply #6 on: Nov 26th, 2020, 1:05pm »
Quote | Modify

Merci Daniel,  
Ca a l'air de marcher dans un premier test. Restera à intégrer cela avec un NewDialog.  
 
 
Update: j'ai pu intégrer cela dans la sorte de "Idle", qui suit Dialog.Select... Je peux afficher les positions 0 1 et 2 des boutons de souris sans devoir activer un item.
 
Merci à tous deux
offline

André Baeck, Belge vivant dans le Gard
Windows 10, HA 992e (et précédents)
bubu42
Board Master
*****





   


Gender: male
Posts: 9966
Re: Mouse Button Release  
« Reply #7 on: Nov 26th, 2020, 2:32pm »
Quote | Modify

@André :
Ah oui, c'est vrai qu'il y a le Dialog.Select() auquel je n'avais pas pensé...
@André et Danièl :
Je me demande comment fonctionne le Push. Mon premier réflexe avait été de l'utiliser pour lancer une procédure à l'appui sur un bouton mais ça marchait très mal alors qu'avec le Release, c'était plus efficace...
Par contre, l'idée d'analyser la souris est beaucoup plus polyvalente. A la limite, on peut même transformer n'importe quel Item d'un dialogue en bouton... Je vais creuser ça. Si Danièl a un exemple, ça serait encore mieux.  
offline

Harmony Assistant - Ubuntu + Wine et Windows XP sur machine virtuelle. VS, OMeR, PDF2M
Daniel Frouvelle
Board Master
*****






   
WWW | Email

Gender: male
Posts: 1481
Re: Mouse Button Release  
« Reply #8 on: Nov 26th, 2020, 7:14pm »
Quote | Modify

Bonsoir Bubu,
Quote:
A la limite, on peut même transformer n'importe quel Item d'un dialogue en bouton
Je dirais même n'importe quelle zone d'un dialogue. Si tu remarques dans la plupart de mes scripts il n'y a aucun item. Je me sers uniquement de la fenêtre du dialogue principal.
 Pour exemple (le code ci-dessous à coller dans une fenêtre flottante) Je dessine un carré et je repère si j'ai cliqué dans ce carré et combien de temps. Pour cela j'ai besoin d'une variable que j'appelle'Clic'.
Au lieu d'un carré, dans mes scripts je dessine un bouton avec Graph.DrawPaletteButton(...) ça a l'air d'un item bouton mais c'est juste un dessin. Il 'prend vie' (change de couleur par ex) si je clique dessus avec la méthode de l'exemple, je le vois si je redessine la palette de façon adéquate.
 

function Init(dialog)
 Clic=0 T=0
end
-------------------------------------------------
function Idle(dialog)
 x,y=Application.GetMousePosition()
 if x>50 and x<100 and y>50 and y<100 then
  if Clic==0 and Application.GetMouseButton()==1 then
   Clic=1  
   T=Application.TickCount()
   dialog.Draw()
  elseif Clic==1 and Application.GetMouseButton()==0 then
   Clic=0 print(Application.TickCount()-T)
   dialog.Draw()
  end  
 else
  if Clic>0 then  
   Clic=0
   dialog.Draw()
  end  
 end  
end
-------------------------------------------------
function Draw(dialog)
 if Clic==1 then  
  Graph.RGBForeColor("AA00AA")
 else
  Graph.RGBForeColor("FF0000")
 end  
 Graph.PaintRect(50,50,100,100)
end
--------------------------------------------------

Amistats, Danièl.
« Last Edit: Nov 26th, 2020, 7:29pm by Daniel Frouvelle » offline
bubu42
Board Master
*****





   


Gender: male
Posts: 9966
Re: Mouse Button Release  
« Reply #9 on: Nov 26th, 2020, 7:30pm »
Quote | Modify

Merci beaucoup pour ces précisions et cet exemple. Je n'avais jamais songé à aller dans cette direction, plus habitué aux routines du Pascal Objet...
offline

Harmony Assistant - Ubuntu + Wine et Windows XP sur machine virtuelle. VS, OMeR, PDF2M
Andre_B
Board Master
*****





   
Email

Gender: male
Posts: 1782
Re: Mouse Button Release  
« Reply #10 on: Nov 27th, 2020, 3:38am »
Quote | Modify

J’adapte à cette méthode ce que j’ai déjà écrit. Je peux mesurer le déplacement, le push et le release.  
Mais ceci est pour une vraie souris. À la fin je veux utiliser un écran tactile.
Celui-ci ne va bien sûr pas indiquer la position de la souris; lors du simple balayage, mais je n’en ai pas besoin. Mais  lorsq’on touche, c’est comme un click gauche, et un item Button est activé. Par contre, la variable Application.GetMouseButton ne reflète pas les valeurs 1 ou 2 du bouton.
Est-ce que quelque chose m’echappe? Une mauvaise simulation Windows? Un manque d’implementation Harmony?
Merci de vos avis. Je peux essayer d’etre Plus clair quand je serai sur mon PC, avec un iPhone c’est vraiment fastidieux...
« Last Edit: Nov 27th, 2020, 3:48am by Andre_B » offline

André Baeck, Belge vivant dans le Gard
Windows 10, HA 992e (et précédents)
Pages: 1  Reply | Notify of replies | Print

« Previous topic | Next topic »

« Myriad Forum » Powered by YaBB 1 Gold - SP 1.1!
YaBB © 2000-2002,
Xnull. All Rights Reserved.

Top of page
Legal information Last update:  (c) Myriad