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éplacement dans une image | |
| | Auteur | Message |
---|
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Déplacement dans une image Dim 14 Mar 2021 - 21:49 | |
| Je cherche à me déplacer à la souris dans une image qui dépasse les dimensions du Picture. Je clique un point quelconque de l'image, je déplace en maintenant le bouton enfoncé, et je relâche. L'image est censée suivre le déplacement de la souris, en modifiant le Top et le Left du Picture en fonction de ce déplacement (c'est juste une ébauche, pour voir): - Code:
-
LABEL Qt,Deplace DIM f$,wt,ht,x,y,x1,y1,lp1,tp1 f$ = "C:\GRAPH\JPG\goldgate.jpg": ' une image quelconque wt = 640: ht = 480: ' dimensions de l'image ON_CLOSE 0,Qt PICTURE 1: WIDTH 1,wt: HEIGHT 1,ht: tp1 = 0: lp1 = 0: ' top et left FILE_LOAD 1,f$ ON_MOUSE_DOWN 1,Deplace END ' ===== Qt: TERMINATE ' ===== Deplace: x1 = MOUSE_X_POSITION(1): y1 = MOUSE_Y_POSITION(1) WHILE MOUSE_LEFT_UP(1) = 0 PAUSE 200 x = MOUSE_X_POSITION(1): y = MOUSE_Y_POSITION(1) IF x<>x1 OR y<>y1 lp1 = lp1+x-x1: tp1 = tp1+y-y1: x1 = x: y1 = y TOP 1,tp1: LEFT 1,lp1 pause 50 END_IF END_WHILE RETURN ' ===== 1) Je constate que le déplacement est très saccadé. 2) Mais surtout, ça se termine en général par l'erreur 68: Label defined twice. Line: 1??? | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Déplacement dans une image Dim 14 Mar 2021 - 22:36 | |
| Bonsoir JL35 !
A essayer : Pour éviter l’erreur 68, il faudrait ajouter dès le début du sous-programme deplace : "off_mouse_down 1" et ajouter à la fin, avant le return, "ON_MOUSE_DOWN 1,Deplace".
Autrement, je pense que les deux PAUSEs sont à supprimer.
Quant au déplacement d’une image à l’intérieur d’un objet PICTURE, je ne sais pas faire. J’y réfléchis… | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Déplacement dans une image Dim 14 Mar 2021 - 23:02 | |
| Bonsoir Marc, et merci pour ta réponse.
Qui me paraît judicieuse, je pense que tu as raison pour les deux solutions. Et aussi pour l'évitement de l'erreur. Je vais essayer d'approfondi tout ça, mais demain... terminé pour ce soir. Et c'était juste un exercice de style.
Pour déplacer une image dans un picture, une solution serait de charger l'image dans un IMAGE, et de faire un 2D_IMAGE_PASTE à l'emplacement voulu dans le Picture (Paste précédé dans doute d'un CLS à chaque fois, si le picture ne contient pas d'image de fond, sinon c'est un peu plus compliqué, mais sans doute faisable, avec des sauvegardes préalables dans le presse-papieer). | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Déplacement dans une image Lun 15 Mar 2021 - 9:18 | |
| Effectivement, en supprimant les 'Pause' le déplacement est plus facile (un peu saccadé, mais supportable), et on peut balader le picture contenant l'image à volonté dans le Form 0, et au-delà ! (parties débordantes invisibles évidemment). Je n'ai pas inséré dans le s/p les Off_Mouse_down et On_Mouse_Down qui m'ont semblé non nécessaires (j'ai essayé, a priori ça ne change rien). Et de coup je n'ai pas reproduit l'erreur Label defined twice...
La motivation: J'habite une commune où de plus en plus on démolit un pavillon et on construit un immeuble à la place... J'ai fait un programme qui affiche un plan de la commune dans lequel on peut se déplacer, avec les emplacements des travaux en cours, on clique sur un emplacement pour avoir les détails. On peut zoomer le plan et/ou le déplacer d'un nombre de pixels donné avec des boutons flèches dans les 4 directions.
Une anecdote: Il y a un quartier à la limite de la ville avec un cercle hippique entouré de plein de maisons et de petites rues aux noms évocateurs, Rue du galop', 'Allée du trot', 'Avenue du manège', etc. L'une de ces rues est marquée et répertoriée dans la liste 'rue Cavalier de la Salle' ... | |
| | | silverman
Nombre de messages : 970 Age : 52 Localisation : Picardie Date d'inscription : 18/03/2015
| Sujet: Re: Déplacement dans une image Lun 15 Mar 2021 - 10:26 | |
| | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Déplacement dans une image Lun 15 Mar 2021 - 14:07 | |
| Bonjour silverman,
Je vais regarder de plus près pour l'adapter à mes besoins, mais effectivement ta démo est super, fluide et tout, ça correspond bien à ce que je cherchais ! Merci !
PS je précise, concernant mon anecdote ci-dessus, et pour calmer l'impatience des nombreux panoramiciens qui se posent la question (?), que Cavelier (et non Cavalier !) de la Salle était sous Louis XIV un explorateur qui a longtemps parcouru le Canada et l'Amérique du Nord, il a entre autres déclaré la Louisiane comme française. C'est un lapsus du type qui a dessiné la carte, et non de la commune. | |
| | | Contenu sponsorisé
| Sujet: Re: Déplacement dans une image | |
| |
| | | | Déplacement dans une image | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |