| Gestion de la souris | |
|
|
Auteur | Message |
---|
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Gestion de la souris Ven 17 Sep 2010 - 12:36 | |
| Jack, je sais que ta préoccupation première c'est de débugger l'existant et de développer les fct 3D mais si tu trouves le temps, et après avis des autres participants du forum bien sur, serait-il possible que tu puisses jeter un coup d'oeil sur ceci ?
Il serait interressant d'avoir:
- une fonction qui renvoie le n° d'objet sur lequel pointe la souris - avoir les mouse_X_### / mouse_Y_### qui fonctionnent avec tous les types d'objets graphique - pouvoir déclencher un évènement sur clic droit de la souris
Amicalement, Nardo
| |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Gestion de la souris Ven 17 Sep 2010 - 14:16 | |
| Moi je me contenterais bien du fait que le On_Click déclenche indifféremment sur le clic gauche ET sur le clic droit, à charge pour le programmeur, s'il le désire, de faire le test dans le sous-programme appelé pour faire la distinction (avec les outils existants). Ça ajouterait des possibilités au clic. Et ça ne doit pas être bien difficile à réaliser (je pense). A priori, et sauf avis contraire, je ne vois que ça puisse changer la programmation existante | |
|
| |
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Gestion de la souris Ven 17 Sep 2010 - 17:56 | |
| D'accord avec toi JL35, déclencher un événement par le click droit serait dèja un progrès. Mais NARDO26 a également dit: - Citation :
- une fonction qui renvoie le n° d'objet sur lequel pointe la souris
et çà aussi se serait pas mal. Prions mes frères..... EDIT: Je suis allé jetez un oeil sur ce qui existe dèja et je vois qu'en programmant un peu on doit pouvoir y parvenir avec MOUSE_RIHGT_DOWN(N) qui renvoi la valeur 1 si N a été cliqué. Mais c'est vrai que ON_CLICK_MOUSE_RIGHT N,label serait plus direct. | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Gestion de la souris Ven 17 Sep 2010 - 19:13 | |
| Tant qu'on y est dans les clics: L'évènement on_click est actuellement déclenche quand on relâche le bouton gauche de la souris. Même si l'on déclenche un évènement on_click par le clic droit, si c'est fait de la même manière, on aura aucun moyen de savoir si le bouton gauche ou droit a déclenché l'évènement, car de toutes façons, le bouton est déjà relaché. Du coup, on ne peut pas non plus "tirer" un objet avec la souris puisque l'évènement n'est déclenché qu'au moment du relâchement (sauf à utiliser l'astuce de Nardo26 dans son post d'aujourd'hui, mais là, on n'est plus dans les évènement souris, mais dans l'utilisation du timer. Ce qui serait idéal, ce serait de pouvoir choisir le type d'évènement qu'on veut utiliser. Soit par l'ajout de 3 nouveaux évènements: on_left_click_down, on_right_click_down, on_right_click_up avec un on_left_click_up en synonyme à on_clicksoit par une nouvelle commande: mouve_event_type xavec le paramètre x indiquant le type d'évènement à utiliser pour le prochain on_click: left_down, left_up, right_down, right_up avec left_up par défaut Dans ce dernier cas, on pourrait imaginer aussi des valeurs de x comme mouse_in et mouse_out et on pourrait ainsi gérer le survol... | |
|
| |
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Gestion de la souris Ven 17 Sep 2010 - 19:54 | |
| Oui tout à fait d'accord, j'ai écrris: - Citation :
- ON_CLICK_MOUSE_RIGHT N,label
Mais en fait, je pensais ON_CLICK_MOUSE_RIGHT_AND_DOWN N,label et ainsi de suite pour UP et LEFT. Bien sur AND est peut-être superflu... A+ EDIT: si je garde ON_CLICK_MOUSE.... au début du mot clé (éventuel) c'est pour respecter ce qu'a dèja fait Jack pour rassembler les mots-clés par catégorie. Ici la catégorie ON_CLICK. | |
|
| |
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Gestion de la souris Ven 17 Sep 2010 - 20:21 | |
| T'en demande peut être un peu beaucoup Klaus Comme le dis JL35, la commande on_click N,label serait largement suffisante. il existe d'autres fct sur la souris pour déterminer ensuite sur quel bouton l'évènement c'est produit.... Il faut juste que le bouton droit provoque l'évènement... | |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Gestion de la souris Ven 17 Sep 2010 - 21:34 | |
| Oui mais Klaus me trouble en précisant (et il a raison) que le On_Click ne déclenche qu'au moment du relâchement, du coup dans le s/p de traitement on ne peut plus savoir si c'était gauche ou droite... il faudrait déclencher dès l'appui... Je rectifie toutefois: quand on arrive dans le sous-programme, le bouton est toujours considéré comme enfoncé, donc à mon avis, notre suggestion à Nardo et moi marcherait: - Code:
-
Label Sousp Button 1: Caption 1, "Bouton" On_Click 1, Sousp end
Sousp: IF MOUSE_LEFT_DOWN(1) = 1 MESSAGE "Bouton gauche enfoncé" ELSE IF MOUSE_RIGHT_DOWN(1) = 1 MESSAGE "Bouton droit enfoncé" ELSE IF MOUSE_LEFT_UP(1) = 1 MESSAGE "Bouton gauche relâché" ELSE IF MOUSE_RIGHT_UP(1) = 1 MESSAGE "Bouton droit relâché" END_IF END_IF END_IF END_IF RETURN (Comme prévu, on n'a évidemment aucune réaction sur le bouton droit). | |
|
| |
Invité Invité
| Sujet: Re: Gestion de la souris Ven 17 Sep 2010 - 23:23 | |
| Moi je regarde évoluer Panoramic et cette liste du 30 novembre que Jack à... un peu oublier...
J'ai hâte que ce fameux Memo_Rich soit créer, les fonctions d'impression que tous le monde souhaite avoir et une certaine amélioration pour la musique et les vidéos. Mais pour l'instant je crée un logiciel SmallWork (ou petit travaux) qui va intégrer un éditeur de texte, un éditeur d'image, un éditeur HTML et un lecteur multimédia. Je vais même peut-être intéger un language de programmation minuscule et une calculatrice comme celle que j'ai déjà crée. (j'ai mis l'exécutable de la calculatrice quelque part sur le forum.)
Nicolas |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Gestion de la souris Ven 17 Sep 2010 - 23:30 | |
| Eh bien Nicolas, ça ne m'étonne plus qu'on ne te voie plus beaucoup ! tu va bientôt nous refaire un système d'exploitation tant que tu y es ! | |
|
| |
Invité Invité
| Sujet: Re: Gestion de la souris Sam 18 Sep 2010 - 0:32 | |
| Je pense que comme pour scancode pendant un bon moment, on avait des problèmes avec, peut-être faudra t-il que Jack regarde de nouveau les instructions dur le traitement de la souris. Voici un p'tit programme d'essai, et on ne peut pas dire que celà fonctionne bien. Pour déplacer avec le clic droit la liste, il faut être sur le coin extérieur haut gauche. Il faut aussi manœuvrer vers l'extérieur de l'objet pour que le déplacement se fasse, sinon il ne se passe rien. De plus même on modifiant avec les clics up ou down des commandes, et les paramètres en conséquences, on ne se détache pas de l'objet. Il reste collé. Dans le manuel il est dit que ces commandes sont pour les objets 2D et 3D. Je n'ai pas essayé avec ce type d'objet, mais je ne pense pas que cela va changer grand chose. Si des spécialistes veulent vérifier! - Code:
-
dim x%,y%,d%,h%,go% label suite list 1:width 1,200:height 1,100:print_target_is 1 timer 2:timer_interval 2,100 on_timer 2,suite end
suite: if mouse_right_down(1)=1 timer_off 2 repeat color 1,255,0,0 x%=mouse_x_position(0) y%=mouse_y_position(0) top 1,y%:left 1,x% if scancode=27 then terminate wait 50 if mouse_right_up(1)=1 then exit_repeat:' j'ai fait une répétition ici mais sans résultat until mouse_right_up(1)=1 end_if timer_on 2 return C'est avec le clic droit sur list que le codage est fait. De plus je me demande à quoi servent les instructions du type MOUSE_X_RIGHT_DOWN, etc... je ne vois aucune valeur autre que zéro???. Et vous? Bonne nuit |
|
| |
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Gestion de la souris Sam 18 Sep 2010 - 8:50 | |
| Le code de JL35 est plus parlant en remplaçant le bouton par un picture (car je ne vois pas l'intérêt de faire un click droit sur un bouton), mais le résultat est le même. Nous sommes bien d'accord il manque bien à panoramic une (plusieurs) commande pour déclencher un événement par un click_droit.
Le code de COSMOS montre qu'avec un timer on peut utiliser les fonctions MOUSE..... Mais c'est plus difficile à gérer que ON_CLICK_MOUSE_RIGHT_DOWN N,Label
A+ | |
|
| |
Invité Invité
| Sujet: Re: Gestion de la souris Sam 18 Sep 2010 - 9:12 | |
| Le code que j'ai mis n'est pas là pour s'en servir, mais pour montrer les imperfections des commandes qui concerne la souris.
MOUSE_X_POSITION(n) ne fonctionne que sur le coin haut gauche, et pour continuer à lire dans le cas déplacement, il faut varier la position sur l'extérieur. Si on déplace sur l'intérieur, cela ne fonctionne pas.
les commandes comme MOUSE_RIGHT_UP(n) et l'ensemble des commandes parallèles ne prennent plus en temps réel l'information de la souris. Ainsi une fois relâché, l'objet continu à se déplacer alors qu'on ne clique plus.
Plusieurs fois j'ai voulu me servir de MOUSE_X_RIGHT_DOWN et commandes // c'est à dire Y et LEFT et UP et j'ai toujours le résultat :0
Est-ce moi qui ne comprend pas? |
|
| |
Invité Invité
| Sujet: Re: Gestion de la souris Sam 18 Sep 2010 - 17:54 | |
| Je vois que vous n'êtes pas d'accord avec moi, vu que le message reste vide. Le code que j'ai mis est un simple exemple. Mais depuis j'essaye de faire marcher le timer pour le survole de la souris sur un objet, et je constate malgrès les différence de codage, les mêmes effets.
Ce qui manque si Jack ne veux pas reprendre ses instructions, c'est une simple commande qui remet les valeurs à zéro des clics et positions. Je ne sais pas si j'ai su me faire comprendre. |
|
| |
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Gestion de la souris Sam 18 Sep 2010 - 18:03 | |
| Si COSMOS on est d'accord, reste plus qu'a attendre une réaction de Jack s'il le souhaite. Salut, A+ | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Gestion de la souris Dim 19 Sep 2010 - 10:07 | |
| Je reviens sur le code de Cosmos pour déplacer une liste avec le click droit. Tu dis que cela ne marche que si l'on fait un mouvement vers l'extérieur. Cela ven du fait que les fonctions mouse_x_position(0) et mouse_y_position(0) ne retournent une valeur significative que si le curseur se trouve au-dessus d'un espace "vide" de la form 0. Dès que le curseur se trouve au-dessus d'un autre objet (et c'est le cas d'un movmement vers l'intérieur), la form 0 ne peut plus être touchée par ces fonctions. Pour l'évènement clic: il ne se déclenche effectivement qu'en relâchant le bouton. La fonction mouse_left_down retourne la valeur 1 dans la routine évènement, mais c'est trompeur: en réalité, le bouton et déjà relâché et au deuxième appel, la fonction retourne la valeur 0 ce qui est normal. Voici un petit code pour le mettre en évidence: - Code:
-
label click dim cnt%
alpha 1
on_click 0,click
end
click: cnt% = 0 while mouse_left_down(0)=1 cnt% = cnt% + 1 caption 1,"mouse_left_down(0)=1 "+str$(cnt%)+" fois" end_while return
On peut bien sûr employer la technique de Cosmos70 avec un timer pour surveiller en permanence les deux boutons de la souris. Encore faut-il ensuite identifier l'objet concerné en fonction de la position de la souris et de l'état de l'objet (visible/invisible, recouvert par un autre ou non, identifier la form concernée dans le cas de programmes avec plusieurs forms, etc. Tout cela est certes possible, mais lourd à mettre en place. Windows met des évènements précis à disposition pour tout cela: bouton gauche enfoncé ou relâché, bouton droit enfoncé ou relaché, entrée ou sortie de la souris sur un objet etc. Je pense que pour des fonctions de ce genre, cela ne sert à rien de vouloir réinventer ce que Windows fait déjà. La seule solution "viable" serait que Panoramic donne accès à ces évènements. On peut bien sûr discuter de la manière à faire, que ce soit ma proposition ou une autre; de toutes façon, c'est Jack qui choisira la méthode de réalisation s'il consent à aller dans ce sens. Mais je reste convaincu qu'une extension dans ce sens est indispensable. | |
|
| |
Invité Invité
| Sujet: Re: Gestion de la souris Dim 19 Sep 2010 - 10:20 | |
| Tout à fait d'accord, et j'interviens pour appuyer cette demande, vu que plus on est de fou et plus on fait pencher la balance. @+ |
|
| |
Contenu sponsorisé
| Sujet: Re: Gestion de la souris | |
| |
|
| |
| Gestion de la souris | |
|