Forum Liberty Basic France

Général » MiddleButtonDown... Détection des actions sur le bouton du milieu de la souris.
Le 24/06/2017 à 19h26

Libertynaute Débutant

Groupe: Membre

Inscrit le: 12/06/2012
Messages: 8
Bonjour à Tou(te)s,

Je constate que les détections d'événements sur le bouton du milieu de la souris fonctionnent sous l'éditeur, mais pas lorsque le programme est compilé et lancé en exécutable "indépendant".

Par exemple:
#1.g , "when middleButtonDown [souriscentredown]"

Mais le "up" ne fonctionne pas non plus.

Une idée ?

Merci pour votre réponse.

Louis.



Edité par UAC48 Le 24/06/2017 à 19h26

Web    
Le 24/06/2017 à 20h57

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2083
Pour avoir besoin du clic-roulette, cela sous-entends que les clic-gauche et droit sont déjà utilisés.
Nous sommes bien curieux de savoir à quoi.
Car il y a certainement une solution alternative
Perso, sur les milliers de logiciels que j'ai manipulés, je n'en ai jamais rencontré un seul utilisant le clic-roulette.
Pour le soucis en question, il faudrait poser la question là-bas:
http://justbasic.conforums.com/index.cgi
Et en anglais
Avec un peu de chance, c'est le concepteur du langage qui répondra
____________________
Roro

   
Le 24/06/2017 à 23h09

Libertynaute Débutant

Groupe: Membre

Inscrit le: 12/06/2012
Messages: 8
Bonjour,

Difficile de "résumer" un logiciel qui compte près de 30.000 lignes de code (sans les documentaires, les lignes vides et sans rire !)...

Simulation de contrôle aérien...

Et effectivement, les clics gauche et droit sont déjà utilisés... et comme il s'agit de reproduire fidèlement une IHM réelle, j'ai vraiment besoin du MiddleButtonDown et du MiddleButtonUp...

Je vais (aussi) tenter ma chance en anglais... Même pas peur ;-)

Si quelqu'un a une autre piste en français, quand même, il est le bienvenu....

Louis.



Edité par UAC48 Le 25/06/2017 à 08h42

Web    
Le 25/06/2017 à 08h43

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2083
Si ton IHM réelle l'utilise, y a un soucis.
Mais puisqu'il s'agit d'une simulation, tu peux faire agir sur une interface virtuelle (poste virtuel), où la souris sera représentée avec ses trois boutons et sa roulette.
Perso j'y mettrais même une silhouette avec deux bras manipulés à la souris
pour manipuler la souris virtuelle en fonction des données.
Tu fais rêver avec tes 40 000 lignes
Y a t-il encore des écrans radar au contrôle aérien, puisqu-avec les données GPS on peut s'en passer ...?

Ou pour faire simple mettre dans un coin une souris BMP et en faire un button voire un double button (Up-Down) ou en faire une "zone sensible", auquel cas, tu peux même simuler la roulette.
____________________
Roro

   
Le 25/06/2017 à 09h04

Libertynaute Débutant

Groupe: Membre

Inscrit le: 12/06/2012
Messages: 8
Pour le dire un peu brutalement, c'est "con" que ça fonctionne sous l'éditeur et pas dans un exécutable !...

Ca ressemble à ça dans mon simulateur...
http://fr.tinypic.com/view.php?pic=2uzz2b8&s=9

et à ça dans la réalité...

https://www.flickr.com/photos/eurocontrol/24536825330/in/album-72157625452300368/

Voilà, voilà...

Mais je vais trouver ! ! !

Web    
Le 25/06/2017 à 09h33

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2083
Pfiouuuu...!!!
Es-tu bien sûr d'avoir fait un tkn de tes dernières modifs ?
C'est un piège courant
Empiriquement, je réenregistrerais le tkn, pour racler les fonds de tiroirs des données perdues
____________________
Roro

   
Le 25/06/2017 à 10h25

Modérateur

Groupe: Modérateur

Inscrit le: 09/02/2015
Messages: 516
Bonjour tous !

J'ai lu un jour que quelqu'un avait eu un souci pour lire le bouton du milieu, mais je n'arrive pas à retrouver où et quand j'ai lu une telle chose.

UAC48:
Je constate que les détections d'événements sur le bouton du milieu de la souris fonctionnent sous l'éditeur, mais pas lorsque le programme est compilé et lancé en exécutable "indépendant".

Eventuellement, le problème serait-il le même que celui décrit dans cette discussion :
Citation:
The program works PERFECTLY in DEBUG "Animate".

However, when ran as a TKN or even when ran though JustBasic, it keeps track of ALL the clicks and instead of running the SUB and then looking for another click.


Si je comprend bien la discussion, le programme va trop vite pour le système, qui lit tous les clics à la fois au lieu d'aller dans le sub correspondant. Il faudrait donc réécrire le programme pour laisser le temps au système de réagir. (système : la "chose" qui gère l'exécution du programme)

Tout ceci est pour moi bien théorique, mais c'est une piste comme une autre...
____________________
Just BASIC v2.0 :
  • utilisation courante avec GNU/Linux Mageia6 + Wine (Pas trouvé d'incohérences ou de bug de compilation à ce jour)
  • utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc

   
Le 25/06/2017 à 12h35

Libertynaute Débutant

Groupe: Membre

Inscrit le: 12/06/2012
Messages: 8
Petit transit par le forum Liberty Basic anglophone.

Le "bug" est connu...

La détection opère parfaitement quand on lance le programme depuis l'éditeur Liberty ou quand on lance le TKN depuis ce même éditeur.

Par contre, le programme "lié" ne fonctionne pas !

Et c'est le cas avec un programme qui contient juste les quelques lignes permettant un test, donc en dehors de mon mastodonte !

Pour ma part, je n'ai besoin "que" de détecter l'appui et le relâchement des boutons de la souris (le problème ne se pose que pour le bouton médian. Le droit et le gauche fonctionnent).

Donc, j'utilise cette ligne "visitée" régulièrement :

Calldll #user32, "GetKeyState", _VK_MBUTTON As uLong, reskey As uShort

et je vérifie les variations de reskey pour détecter les deux actions !

Et, Vive la Vie... ça fonctionne impeccablement...

Merci pour vos aides, j'espère que ma solution trouvera d'autres heureux.

Bien à Vous,

Louis.

Web    
Le 25/06/2017 à 14h56

Modérateur

Groupe: Modérateur

Inscrit le: 09/02/2015
Messages: 516
Merci pour le retour.

Et reviens plus souvent, il est rare de voir des programmes de 30 000 lignes sur le forum, et Roland se plaint souvent de solitude :hi

Bonne journée,

Christophe
____________________
Just BASIC v2.0 :
  • utilisation courante avec GNU/Linux Mageia6 + Wine (Pas trouvé d'incohérences ou de bug de compilation à ce jour)
  • utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc

   
Le 25/06/2017 à 17h58

Libertynaute Débutant

Groupe: Membre

Inscrit le: 12/06/2012
Messages: 8
Christophe:
il est rare de voir des programmes de 30 000 lignes sur le forum


Jusque là, je me suis pas trop mal débrouillé tout seul...... héhéhé...

Pourtant, il y a quelques astuces dans ce machin... Y compris de la synthèse vocale...

A bientôt, peut-être,

Louis.

Web    
Le 03/07/2017 à 21h05

Modérateur

Groupe: Modérateur

Inscrit le: 30/03/2011
Messages: 341
j'avoue que même moi mes deux gros projets (jeux) font environs 10 000 chacun XD

Après fait attention a l'optimisation du code. Fut une époque j'avais dépassé les 10 000 lignes et après optimisation j'étais descendus sous les 6000. Bon certes je suis remonté a 10 000 mais mon code est encore très mal foutu et je sais que je pourrais encore le diviser par 2 en le perfectionnant.

Donc fait attention a ne pas faire des lignes pour faire des lignes sinon il va te falloir un super calculateur pour l'ouvrir :D

Tu posteras ton programme et ton code un jour ? :)
____________________
Yo !

MSN Web    
Le 06/07/2017 à 16h31

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2083
Citation:
Tu posteras ton programme et ton code un jour ?

A l'heure qu'il est UAC48 doit être loinnnn...
____________________
Roro

   
Le 14/07/2017 à 22h05

Libertynaute Débutant

Groupe: Membre

Inscrit le: 12/06/2012
Messages: 8
Non, il est encore là... ;-)

Web    
Général » MiddleButtonDown... Détection des actions sur le bouton du milieu de la souris.  

 |  |

1 Utilisateur en ligne : 0 Administrateur, 0 Modérateur, 0 Membre et 1 Visiteur
Utilisateur en ligne : Aucun membre connecté
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie