PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV (versões anteriores) → [WD20] glisser/déplacer sur une image
[WD20] glisser/déplacer sur une image
Iniciado por Maxell, mar., 31 2017 8:57 AM - 10 respostas
Publicado em março, 31 2017 - 8:57 AM
bonjour a tous,

Pour un projet professionnel, je dois mettre en place une interface pour que mes collègues puissent dessiner un croquis et y placer différent élément.

A partir de cet application, l'utilisateur final doit pouvoir dessiner les rive d'un cours d'eau, et y placer des éléments.

Le tracer des rives fonctionne ainsi que de prendre dans une librairie proposé par l'application des images pour les positionner sur le croquis.

Ce que je cherche à faire, c'est une fois que l'utilisateur à déposer une image dans la zone de dessin qu'il puisse la déplacer, pour repositionner l'image dans un autre endroit du dessin. auriez-vous des pistes de réflexion à me donner pour pouvoir mettre en place le glisser / déplacer sur l'image final elle-même

Je vous remercie pour votre aide et vos conseilles
Publicado em março, 31 2017 - 1:56 PM
Bonjour

j'utiliserais un deuxième champ image placé sur le premier. Le drag and
drop sur ce champ permettrait de le déplacer à volonté, il serait aussi
possible d'avoir des poignées placées sur ce champ pour le redimensionner.

Une fois à la bonne place/dimension, un dcopyimage fait le reste

Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

A votre disposition : WXShowroom.com, WXReplication (open source) et
maintenant WXEDM (open source)

Plus d'information sur http://fabriceharari.com


Le 3/31/2017 à 12:57 AM, Maxell a écrit :
bonjour a tous,
Pour un projet professionnel, je dois mettre en place une interface pour
que mes collègues puissent dessiner un croquis et y placer différent
élément.

A partir de cet application, l'utilisateur final doit pouvoir dessiner
les rive d'un cours d'eau, et y placer des éléments.

Le tracer des rives fonctionne ainsi que de prendre dans une librairie
proposé par l'application des images pour les positionner sur le croquis.

Ce que je cherche à faire, c'est une fois que l'utilisateur à déposer
une image dans la zone de dessin qu'il puisse la déplacer, pour
repositionner l'image dans un autre endroit du dessin. auriez-vous des
pistes de réflexion à me donner pour pouvoir mettre en place le glisser
/ déplacer sur l'image final elle-même
Je vous remercie pour votre aide et vos conseilles
Publicado em abril, 03 2017 - 10:45 AM
Bonjour,

Merci pour votre réponse.

Par contre je ne vois pas comment procéder, lorsque je lâche l'image je n'arrive plus à la sélectionner.
Membro registado
2.566 mensagems
Popularité : +222 (260 votes)
Publicado em abril, 03 2017 - 6:18 PM
Bonjour,

Tu peux gérer les évènements de survol de l'objet image que tu dropes , changer le cadre de l'image pour avoir un cadre en pointillé lorsque tu le survoles, puis tu gères le clique sur l'objet et le déplacement sur x et y.

Je ne sais pas si j'ai été très clair mais bon...
Publicado em abril, 04 2017 - 8:49 AM
oui c'est un peu plus clair merci.
C'est surtout que je ne maîtrise pas trop le drag & drop c'est des nouvelles fonctionnalité que je tente de mettre en place.
:p
Publicado em abril, 06 2017 - 9:51 AM
bonjour,

Il me semble qu'après avoir "lâcher" l'objet image dans la zone cible, les 2 éléments fusionnent entre eux, et je n'arrive pas a sélectionner un élément déplacer.

Dans ma procédure de lâcher j'ai ceci
Procedure Lacher()
DnDRécupère(CF_BITMAP)

dCopieImage(_DND.ChampSource,_DND.ChampCible,copieSrcEt,gvcSourisDepart.x,gvcSourisDepart.y,gnHauteurImage,gnLargeurImage,SourisPosX()-(gnLargeurImage/2),SourisPosY()-(gnHauteurImage/2),gnHauteurImage,gnLargeurImage)
Membro registado
58 mensagems
Publicado em abril, 06 2017 - 10:22 AM
Bonjour,

J'ai justement développé ce genre d'appli : déposer des images sur un fond et les superposées, déplacer l'ensemble (le fond et les images), ou déplacer les images individuellement, etc...
Voilà des bouts de code qui pourront sans doute t'être utile :

// Création d'un champ image
ch <- ChampCrée(sNomChamp,typImage,SourisPosX(),SourisPosY(),0,0,Vrai)
sNomFichier = ComplèteRep(fRepExe()) + psNomImageSource
// Récupérer l'image dans un fichier, extraire le "mémo" et l'affecter au champ image :
SI HLitRecherche(Images,ID,pnIdImage,hRespecteFiltre) ALORS
SI HTrouve() ALORS
ch..Largeur = Images.Largeur
ch..Hauteur = Images.Hauteur
SI HExtraitMémo(Images,Image,sNomFichier) ALORS
ch..Valeur = sNomFichier
FIN
// S'assurer que la nouvelle image soit visible : placée au dessus du fond
ch..Altitude = 10 // pour l'exemple, mais à gérer en fonction de ton cas
FIN
FIN

ch.PosX = SourisPosX()
ch.PosY = SourisPosY()

// Lui attribuer les traitements pour gérer les déplacements
ch..Traitement[trtBoutonGaucheEnfoncé] = PrendreObjet
ch..Traitement[trtBoutonGaucheRelâché] = RelacherObjet

PrendreObjet :
(...)
// Gérer les déplacements de la souris sur l'image sélectionnée (mais que si le bouton gauche est enfoncé !). A chaque mouvement de souris, on appelle la fonction DeplacerObjet
SI ToucheEnfoncée(teBoutonG) ALORS
// Gérer les événements de déplacement de la souris/du doigt
// IdEvenement doit être une variable globale, on s'en servira quand on lâchera la souris
IdEvenement = Evénement(DeplacerObjet,MoiMême..Nom,512) // 512 = événement WM_MOUSEMOVE
FIN


DéplacerObjet :
(...)
SI ToucheEnfoncée(teBoutonG) ALORS
// Déplacer le champ sNomChamp
{sNomChamp, indChamp}..X = (SourisPosX())
{sNomChamp, indChamp}..Y = (SourisPosY())

FenRepeint()
FIN


RelacherObjet() :
// Arrêter de déplacer l'image si le bouton gauche de la souris n'est plus appuyé
FinEvénement(IdEvenement)


Bons développements !
Publicado em abril, 06 2017 - 1:59 PM
Bonjour Maxell,


Le 4/6/2017 à 1:51 AM, Maxell a écrit :
bonjour,
Il me semble qu'après avoir "lâcher" l'objet image dans la zone cible,


Ce n'est pas "il me semble" c'est "j'ai écrit un code qui fusionne les 2"

Il ne fait pas faire un docopieimage si tu ne veux pas copier l'image
(ce qui est ce que tu nous explique)

Il faut DEPLACER l'image d'origine, à la place

Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

A votre disposition : WXShowroom.com, WXReplication (open source) et
maintenant WXEDM (open source)

Plus d'information sur http://fabriceharari.com

les 2 éléments fusionnent entre eux, et je n'arrive pas a sélectionner
un élément déplacer.

Dans ma procédure de lâcher j'ai ceci
PROCEDURE Lacher()
DnDRécupère(CF_BITMAP)

dCopieImage(_DND.ChampSource,_DND.ChampCible,copieSrcEt,gvcSourisDepart.x,gvcSourisDepart.y,gnHauteurImage,gnLargeurImage,SourisPosX()-(gnLargeurImage/2),SourisPosY()-(gnHauteurImage/2),gnHauteurImage,gnLargeurImage)
Publicado em abril, 06 2017 - 2:01 PM
et pour être plus précis, il semblerait que ton problème vienne du fait
que tu confond le CHAMP image, et l'image qu'il CONTIENT..

Un champ, tu peux le déplacer, changer sa taille, etc
Son contenu, tu peux le traiter (dans ce cas avec dcopieimage, qui copie
le contenu dans le contenu, pas le champ lui même)

Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

A votre disposition : WXShowroom.com, WXReplication (open source) et
maintenant WXEDM (open source)

Plus d'information sur http://fabriceharari.com


Le 4/6/2017 à 1:51 AM, Maxell a écrit :
bonjour,
Il me semble qu'après avoir "lâcher" l'objet image dans la zone cible,
les 2 éléments fusionnent entre eux, et je n'arrive pas a sélectionner
un élément déplacer.

Dans ma procédure de lâcher j'ai ceci
PROCEDURE Lacher()
DnDRécupère(CF_BITMAP)

dCopieImage(_DND.ChampSource,_DND.ChampCible,copieSrcEt,gvcSourisDepart.x,gvcSourisDepart.y,gnHauteurImage,gnLargeurImage,SourisPosX()-(gnLargeurImage/2),SourisPosY()-(gnHauteurImage/2),gnHauteurImage,gnLargeurImage)
Publicado em março, 21 2019 - 1:20 PM
bonjour

je réveille ce vieux post
Maxell as tu reussi ?

merci
Publicado em setembro, 16 2019 - 11:54 AM
Bonjour à tous,
Moi aussi je réveille ce post pour savoir si il est possible de gérer un fond transparent pour le champ image que l'on désire manipuler.

Cordialement et merci à tous.