Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: [Résolu] Problème avec ON_MOUSE_DOWN et OFF_MOUSE_DOWN Dim 19 Mai 2019 - 14:19 | |
| Bonjour à toute la communauté ! Je vous soumet le problème du jour : J'ai un soucis avec les fonctions ON_MOUSE_DOWN et OFF_MOUSE_DOWN. J'ai l'impression qu'elles ne fonctionnent pas correctement. je vous livre un petit code de test pour mettre en évidence le problème. A moins que l'erreur vienne de moi... - Code:
-
LABEL clic, deplace
DIM nclic, ppx%, ppy%, pfx%, pfy%, t$
BORDER_HIDE 0 : WIDTH 0,555 : HEIGHT 0,500 : TOP 0,0 : LEFT 0,SCREEN_X - WIDTH(0) : COLOR 0,240,255,255 PANEL 1 : LEFT 1,5 : TOP 1,5 : WIDTH 1,515 : HEIGHT 1,30 : CAPTION 1,"CLIQUEZ ICI POUR DEPLACER LA FENETRE" : ON_MOUSE_DOWN 1,deplace PANEL 2 : LEFT 2,520 : TOP 2,5 : WIDTH 2,30 : HEIGHT 2,30 : CAPTION 2,"X" : ON_CLICK 2,clic BUTTON 3 : LEFT 3,20 : TOP 3,70 : HEIGHT 3,30 : WIDTH 3,400 : CAPTION 3,"ACTIVER LE DEPLACEMENT DE LA FENETRE" : INACTIVE 3 : ON_CLICK 3,clic BUTTON 4 : LEFT 4,20 : TOP 4,105 : HEIGHT 4,30 : WIDTH 4,400 : CAPTION 4,"DESACTIVER LE DEPLACEMENT DE LA FENETRE" : ON_CLICK 4,clic t$="TEST POUR UN PROBLEME SUR LES FONCTIONS - ON_MOUSE_DOWN - OFF_MOUSE_DOWN"+CHR$(13)+CHR$(13) t$=t$+"1) Commençez par déplacer la fenêtre en maintenant la touche de la souris sur la barre de titre"+CHR$(13) t$=t$+"2) Cliquez sur 'DESACTIVER LE DEPLACEMENT DE LA FENETRE'"+CHR$(13) t$=t$+"3) recommençez comme à l'étape 1 pour verifier qu'il n'y a plus de déplacement."+CHR$(13) t$=t$+"4) Cliquez sur 'ACTIVER LE DEPLACEMENT DE LA FENETRE"+CHR$(13) t$=t$+"5) Testez de nouveau le déplacement..."+CHR$(13)+CHR$(13) t$=t$+"Et c'est là ou il y a un problème !!" ALPHA 5 : LEFT 5,10 : TOP 5,220 : CAPTION 5,t$
END ' ----------------------------
clic: nclic=NUMBER_CLICK IF nclic=2 THEN TERMINATE IF nclic=3 THEN activer() IF nclic=4 THEN desactiver() RETURN ' ---------------------------- deplace: OFF_MOUSE_DOWN 1 ' MESSAGE "OK" : ' ligne à activer pour un second test ppx%=MOUSE_X_POSITION(1) : pfx%=LEFT(0) ppy%=MOUSE_Y_POSITION(1) : pfy%=TOP(0) REPEAT LEFT 0,pfx%+MOUSE_X_POSITION(1)-ppx% : pfx%=LEFT(0) : DISPLAY TOP 0,pfy%+MOUSE_Y_POSITION(1)-ppy% : pfy%=TOP(0) : DISPLAY UNTIL MOUSE_LEFT_UP(1)=1
ON_MOUSE_DOWN 1,deplace RETURN ' ---------------------------- SUB activer() INACTIVE 3 : ACTIVE 4 : ON_MOUSE_DOWN 1,deplace END_SUB ' ---------------------------- SUB desactiver() ACTIVE 3 : INACTIVE 4 : OFF_MOUSE_DOWN 1 END_SUB
Dernière édition par Minibug le Dim 19 Mai 2019 - 15:29, édité 3 fois | |
|
jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: +++ Dim 19 Mai 2019 - 14:55 | |
| Avec ton source, j'ai même 2 problèmes : - lorsque je tente de déplacer pour la première fois, la fenêtre disparaît vers le bas et pfouitt, plus rien (--> CTRL-Alt-Suppr...) - lorsque (sans avoir déplacé) j'inactive, puis réactive le truc, la fenêtre ne se déplace plus. | |
|
jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: +++ Dim 19 Mai 2019 - 15:06 | |
| Ah, j'ai trouvé une solution qui résout les deux problèmes : mettre « pause 1 » dans le cycle REPEAT-UNTIL - Code:
-
REPEAT LEFT 0,pfx%+MOUSE_X_POSITION(1)-ppx% TOP 0,pfy%+MOUSE_Y_POSITION(1)-ppy% pfx%=LEFT(0) : pfy%=TOP(0) pause 1 UNTIL MOUSE_LEFT_UP(1)=1 Il devait y avoir une discordance de vitesse entre les ordres donnés par le source et le fonctionnement du microprocesseur...? En tout cas, maintenant, ça marche. | |
|
jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: +++ Dim 19 Mai 2019 - 15:10 | |
| Ah non, erreur pour moi, il y a encore des cas où le deuxième problème n'est pas résolu... C'est quand on tente de déplacer quand il est inactif. Si on désactive et réactive en ne cherchant pas à déplacer entre les deux, ça continue à fonctionner bien... | |
|
Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: [Résolu] Problème avec ON_MOUSE_DOWN et OFF_MOUSE_DOWN Dim 19 Mai 2019 - 15:21 | |
| Salut à tous ! J'avais trouvé une solution fiable, je pense, que j'avais exploitée dans le jeu des 6 palets. Il suffit de lire la fonction MOUSE_LEFT_UP pour la "raffraichir". à ajouter : DIM null%et dans deplace:null%=MOUSE_LEFT_UP(1) Ce qui donne : - Code:
-
deplace: OFF_MOUSE_DOWN 1
null% = MOUSE_LEFT_UP(1) ppx%=MOUSE_X_POSITION(1) ppy%=MOUSE_Y_POSITION(1) pfx%=LEFT(0) : pfy%=TOP(0) REPEAT LEFT 0,pfx%+MOUSE_X_POSITION(1)-ppx% TOP 0,pfy%+MOUSE_Y_POSITION(1)-ppy% pfx%=LEFT(0) : pfy%=TOP(0) UNTIL MOUSE_LEFT_UP(1)=1
ON_MOUSE_DOWN 1,deplace RETURN
A tester ! Bonne programmation !
Dernière édition par Marc le Dim 19 Mai 2019 - 17:45, édité 1 fois | |
|
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: [Résolu] Problème avec ON_MOUSE_DOWN et OFF_MOUSE_DOWN Dim 19 Mai 2019 - 15:22 | |
| Salut jjn4 ! Je crois que sur Mars ça ne fonctionne pas comme chez nous ! Sérieusement, 1/ je viens de mettre des DISPLAY en bout de ligne. 2/ j'ai rajouter un bouton "ok" pour tester le déplacement avec arrêt par OFF_MOUSE_DOWN. Dans ce cas on arrive à déplacer la fenêtre. Mais j'ai bien l'impression qu'il y a comme un b.. Je le dit pas trop fort car ici c'est un peu comme un gros mot ! Attendons de voir ce qu'en pense les autres... Merci pour ton aide | |
|
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: [Résolu] Problème avec ON_MOUSE_DOWN et OFF_MOUSE_DOWN Dim 19 Mai 2019 - 15:28 | |
| Salut Marc ! On s'est croisé... Effectivement, l'ajout de la ligne null% = MOUSE_LEFT_UP(1) suffit à résoudre le problème. Merci pour ton aide. Maintenant la question que l'on peut se poser, est ce bien normal de devoir procéder ainsi ? | |
|
Contenu sponsorisé
| Sujet: Re: [Résolu] Problème avec ON_MOUSE_DOWN et OFF_MOUSE_DOWN | |
| |
|