Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| déplacer des picture avec la souris | |
| | Auteur | Message |
---|
bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: déplacer des picture avec la souris Jeu 9 Aoû 2012 - 14:46 | |
| Bonjour à tous, J'espère que ce petit programme vous sera utile... En rems du code, quelques explications... - Code:
-
' Cliquez pour sélectionner le picture à déplacer, ' puis déplacez le à l'aide de la souris, il la suit. ' DOUBLE CLIQUEZ ou appuyez sur la barre d'espace ' pour positionner le picture à l'endroit désiré. ' Vous pouvez le positionner aussi si vous ne cliquez ' qu'une seule fois seulement, en maintenant le bouton ' de la souris enfoncé et en glissant la souris ' sur le form 0 en dehors du picture. ' puis relachez le bouton de la souris. label deplace1,deplace2,deplace3 dim xp1,yp1,xp2,yp2,xp3,yp3 full_space 0
picture 1:left 1,100:top 1,100:color 1,100,0,0:on_click 1,deplace1 picture 2:left 2,210:top 2,210:color 2,0,100,0:on_click 2,deplace2 picture 3:left 3,320:top 3,320:color 3,0,0,100:on_click 3,deplace3 xp1=100:yp1=100:xp2=210:yp2=210:xp3=320:yp3=320 end
deplace1: off_click 1 while (xp1<width(0) and yp1<height(0)) left 1,xp1:top 1,yp1:xp1=mouse_x_position(0):yp1=mouse_y_position(0) if (mouse_left_down(1)=1 and mouse_left_up(1)=0) or scancode=32 then exit_while end_while on_click 1,deplace1 return
deplace2: off_click 2 while (xp2<width(0) and yp2<height(0)) left 2,xp2:top 2,yp2:xp2=mouse_x_position(0):yp2=mouse_y_position(0) if (mouse_left_down(2)=1 and mouse_left_up(2)=0) or scancode=32 then exit_while end_while on_click 2,deplace2 return
deplace3: off_click 3 while (xp3<width(0) and yp3<height(0)) left 3,xp3:top 3,yp3:xp3=mouse_x_position(0):yp3=mouse_y_position(0) if (mouse_left_down(3)=1 and mouse_left_up(3)=0) or scancode=32 then exit_while end_while on_click 3,deplace3 return
Cordialement | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 9 Aoû 2012 - 15:08 | |
| Bravo ! Ton code donne matière à réflexion et une base de travail sérieuse pour approfondir... | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: déplacer des picture avec la souris Jeu 9 Aoû 2012 - 17:37 | |
| | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: déplacer des picture avec la souris Jeu 9 Aoû 2012 - 19:00 | |
| Oui, c'est bien pratique, mais tu constates dans ton programme le problème de déplacement quand on passe sur un autre objet. Si tu prends le picture 1, tu le déplace sans problème. Si tu passes pas trop vite sur les picture 2 ou 3 ou si tu bouges sur ces pictures, le picture 1 ne bouge plus jusqu'à ce que la souris en ressorte. Autre petit soucis, on devrait normalement d'après le programme cliquer une fois pour sélectionner le picture à bouger => OK et une fois pour le lâcher hors moi dans les faits, je suis obligé de double cliquer pour "lâcher" la picture (ce qui n'est pas gênant en soit une fois que l'on le sait, on peut faire semblant que ce soit volontaire, mais d'après le source, un simple clic devrait suffire sauf erreur de compréhension de ma part)
PS: Merci Bignono pour ton incartade dans Panoramic. J'espère que c'est bon signe par rapport à tes soucis | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: déplacer des picture avec la souris Ven 10 Aoû 2012 - 9:05 | |
| Bonjour à tous, essayez ce nouveau code. Cliquez une fois pour sélectionner le picture, déplacez-le où vous voulez, puis cliquez une fois pour le positionner. - Code:
-
label deplace1,deplace2,deplace3 dim xp1,yp1,xp2,yp2,xp3,yp3 full_space 0
picture 1:left 1,100:top 1,100:color 1,100,0,0:on_click 1,deplace1 picture 2:left 2,210:top 2,210:color 2,0,100,0:on_click 2,deplace2 picture 3:left 3,320:top 3,320:color 3,0,0,100:on_click 3,deplace3 xp1=100:yp1=100:xp2=210:yp2=210:xp3=320:yp3=320 end
deplace1: off_click 1 while (xp1<width(0) and yp1<height(0)) left 1,xp1-width(1)/2:top 1,yp1-height(1)/2:xp1=mouse_x_position(0):yp1=mouse_y_position(0) if (mouse_left_up(1)=1 and mouse_left_down(1)=0) then exit_while end_while on_click 1,deplace1 return
deplace2: off_click 2 while (xp2<width(0) and yp2<height(0)) left 2,xp2:top 2,yp2:xp2=mouse_x_position(0):yp2=mouse_y_position(0) if (mouse_left_up(2)=1 and mouse_left_down(2)=0) then exit_while end_while on_click 2,deplace2 return
deplace3: off_click 3 while (xp3<width(0) and yp3<height(0)) left 3,xp3:top 3,yp3:xp3=mouse_x_position(0):yp3=mouse_y_position(0) if (mouse_left_up(3)=1 and mouse_left_down(3)=0) then exit_while end_while on_click 3,deplace3 return Bonne journée à tous... | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: déplacer des picture avec la souris Ven 10 Aoû 2012 - 9:13 | |
| Ca marche bien bignono Par contre bien sûr, il y a toujours le "blocage" quand on passe sur une autre picture, mais là il faudrait gérer le passage sur un picture pour récupérer les coordonnées de la souris sur ce picture et déplacer l'image en conséquence, ce qui serait galère... | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 10 Aoû 2012 - 12:19 | |
| De mieux en mieux, bientôt un paliatif sérieux à la dll | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: déplacer des picture avec la souris Ven 10 Aoû 2012 - 14:05 | |
| Je n'ai pas trop étudié le code, mais la règle de déplacement des carrés n'est pas la même pour tous ? je positionne avec assez de précision les carrés bleu et vert, mais le rouge se déplace par saccades (d'1/2 carré à chaque fois) (j'ai mis des couleurs plus vives, c'est plus gai: 255,0,0 0,255,0 0,0,255)
Effectivement, j'ai supprimé le -width(1)/2 et le -height(1)/2 dans deplace1 et c'est bien mieux (pour moi) | |
| | | bignono
Nombre de messages : 1127 Age : 67 Localisation : Val de Marne Date d'inscription : 13/11/2011
| Sujet: Re: déplacer des picture avec la souris Ven 10 Aoû 2012 - 15:05 | |
| Bonjour JL35, -width(1)/2 et le -height(1)/2 étaient là pour montrer qu'on peut mettre le curseur de la souris au milieu du picture pour le déplacer au lieu de le positionner en haut à gauche comme pour les autres. Un autre code un peu plus long où je procéde avec image. Il y a des bug aussi par moment. Mais j'espère que ça vous inspirera pour vos futurs programmes. - Code:
-
label deplace1,deplace2,deplace3 dim xp1,yp1,xp2,yp2,xp3,yp3 full_space 0
picture 1:left 1,100:top 1,100:color 1,100,0,0:on_click 1,deplace1 picture 2:left 2,210:top 2,210:color 2,0,100,0:on_click 2,deplace2 picture 3:left 3,320:top 3,320:color 3,0,0,100:on_click 3,deplace3 image 4 image 5 image 6 image 7 xp1=100:yp1=100:xp2=210:yp2=210:xp3=320:yp3=320 end
deplace1: hide 1:display 2d_image_copy 7,0,0,width(0),height(0) show 1:display 2d_image_copy 4,xp1,yp1,xp1+width(1),yp1+height(1) off_click 1 while (xp1<width(0) and yp1<height(0)) 2d_image_paste 7,0,0:2d_image_paste 4,xp1,yp1 xp1=mouse_x_position(0):yp1=mouse_y_position(0) if (mouse_left_up(0)=1 and mouse_left_down(0)=0) then exit_while end_while on_click 1,deplace1 2d_image_paste 7,0,0:left 1,xp1:top 1,yp1:show 1 return
deplace2: hide 2:display 2d_image_copy 7,0,0,width(0),height(0) show 2:display 2d_image_copy 5,xp2,yp2,xp2+width(2),yp2+height(2) off_click 2 while (xp2<width(0) and yp2<height(0)) 2d_image_paste 7,0,0:2d_image_paste 5,xp2,yp2 xp2=mouse_x_position(0):yp2=mouse_y_position(0) if (mouse_left_up(0)=1 and mouse_left_down(0)=0) then exit_while end_while on_click 2,deplace2 2d_image_paste 7,0,0:left 2,xp2:top 2,yp2:show 2 return
deplace3: hide 3:display 2d_image_copy 7,0,0,width(0),height(0) show 3:display 2d_image_copy 6,xp3,yp3,xp3+width(3),yp3+height(3) off_click 3 while (xp3<width(0) and yp3<height(0)) 2d_image_paste 7,0,0:2d_image_paste 6,xp3,yp3 xp3=mouse_x_position(0):yp3=mouse_y_position(0) if (mouse_left_up(0)=1 and mouse_left_down(0)=0) then exit_while end_while on_click 3,deplace3 2d_image_paste 7,0,0:left 3,xp3:top 3,yp3:show 3 return A+ | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: déplacer des picture avec la souris Ven 10 Aoû 2012 - 15:31 | |
| Oui bignono, ça marche aussi, mais alors... bonjour le scintillement ! En tout cas ce sont des pistes intéressantes, merci pour ça. Une petite remarque personnelle (pour moi): un truc qui ne me convient pas c'est le full_screen 0, j'aime bien quand j'essaie quelque chose voir à la fois le programme et la fenêtre d'exécution, ici la moitié de l'écran suffit largement pour faire les essais. mais comme je dis, ce n'est que pour mon confort personnel, ça ne change rien aux principes appliqués. Un truc que je ne comprends pas, c'est pourquoi il faut écrire: - Code:
-
if (mouse_left_up(1)=1 and mouse_left_down(1)=0) then exit_while et non pas tout simplement - Code:
-
if mouse_left_up(1)=1 then exit_while si le bouton est levé c'est qu'il n'est pas enfoncé ! et pourtant il faut bien mettre comme tu as mis, sinon ça ne marche pas | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| | | | Contenu sponsorisé
| Sujet: Re: déplacer des picture avec la souris | |
| |
| | | | déplacer des picture avec la souris | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |