IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

[WD10] Dessiner un cadre de sélection sur un champ image


Sujet :

WinDev

  1. #1
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    582
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 582
    Points : 263
    Points
    263
    Par défaut [WD10] Dessiner un cadre de sélection sur un champ image
    Bonjour,

    J'ai trouver le code pour dessiner un rectangle de sélection sur le champ image lorsque on clique sur le premier point puis qu'on déclique sur le second point.

    Je voudrait faire en sorte que l'utilisateur voit le cadre qu'il dessine lorsqu'il déplace sa souris (comme dans tout logiciel de photo lorsqu'on sélectionne une zone d'une image).

    Voici mon code actuel:
    Boutton gauche enfoncé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    x1=SourisPosX()
    y1=SourisPosY()
    Bouton gauche relaché
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    x2=SourisPosX()
    y2=SourisPosY()
     
    dDébutDessin(IMG_photo)
    dRectangle(x1,y1,x2,y2,iTransparent,iRougeClair)
    Pour mon histoire j'ai essayé de capturé un évènement pour répéter le code de traçage tant que le bouton gauche n'est pas relaché:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    // Capture du clic souris sur un champ de saisie
    WM_LBUTTONDOWN est un entier
    TANTQUE WM_LBUTTONDOWN = 513
     
    		Evénement("ClicSouris", "IMG_photo", WM_LBUTTONDOWN)
     
    FIN
    Bien évidement ça ne marche pas, je pense que l'idée est bonne mais comment la coder?.....et l'aide de windev m'en apprend pas beaucoup plus....

    Merci à ceux qui pourront m'aider......

  2. #2
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    582
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 582
    Points : 263
    Points
    263
    Par défaut
    j'ai un peu avancé...

    J'arrive à tracer mon rectangle de sélection en utilisant l'évènement WM_MOUSEMOVE:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    x1=SourisPosX()
    y1=SourisPosY()
     
     
     
    // Capture du clic souris sur un champ de saisie
    WM_LBUTTONDOWN est un entier =513
    WM_MOUSEMOVE est un entier = 512 
    WM_LBUTTONUP est un entier =514
    resultat est un entier
     
    Evénement("ClicSouris", "IMG_photo", WM_MOUSEMOVE)
    Le pb c'est que maintenant je n'arrive plus à quitter le traçage de ce cadre pour avoir mon cadre définitif....

    Merci....

  3. #3
    Membre expérimenté Avatar de klbsjpolp
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 065
    Points : 1 322
    Points
    1 322
    Par défaut
    Il faudrait que tu utilises un booléen afin de savoir si tu es en dessin, donc entre les évènements mousedown et mouseup. Ensuite tu dessines dans les mousemove et mouseup quand tu es en dessin.

  4. #4
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    582
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 582
    Points : 263
    Points
    263
    Par défaut
    Ça y est j'ai trouvé une solution..... je ne sais pas si c'est la meilleure mais bon ça fonctionne.
    Si vous avez des idées d'amélioration ou de simplification je suis preneur....

    voici ma méthode:

    Mes variables globales placées dans déclarations globales de la fenêtre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    x1, y1 ,x2,y2 sont des entiers // pour dessiner le rectangle
    photo est une chaîne   //pour revenir en arrière
    clic est une entier  // pour noter le numéro de l'événement windows capturé
    sur Bouton gauche enfoncé du champ image:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    // défini les coordonnées du 1er point au premier clic sur l'image
    x1=SourisPosX()
    y1=SourisPosY()
     
    // Capture du mouvement souris sur un champ de saisie et mise en mémoire du numéro de l'évènement dans la variable globale "clic"
    WM_MOUSEMOVE est un entier = 512 
    clic=Evénement("ClicSouris", "IMG_photo", WM_MOUSEMOVE)
    Dans la procédure locale ClicSouris:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    PROCEDURE ClicSouris()
    //défini les coordonnées du 2sd point chaque fois que la souris bouge
    x2=SourisPosX()
    y2=SourisPosY()
     
    // trace le rectangle de sélection
    dDébutDessin(IMG_photo)
    dRectangle(x1,y1,x2,y2,iTransparent,iRougeClair)
     
    //capture l'évènement Bouton gauche relaché
    WM_LBUTTONUP est une entier = 514
    Evénement("DClicSouris", "IMG_photo", WM_LBUTTONUP)
    Dans Bouton Gauche relâché du champ image:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    FinEvénement(clic)
    dRectangle(x1,y1,x2,y2,iTransparent,iRougeClair)
    J'espère que ça servira à quelqu'un...

  5. #5
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    582
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 582
    Points : 263
    Points
    263
    Par défaut [WD10] Dessiner un cadre de sélection sur un champ image et recadrer l'image
    Mon but était ensuite de recadrer l'image
    voici un code qui permet de le faire en ignorant la façon dont a été tracé le rectangle de sélection (ordre des clics, gauche droite haut bas)
    code à placer soit à la suite du traçage du cadre soit sur un bouton.....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    //recadrer l'image
    hauteurimg est un réel
    largeurimg est un réel
     
    xchg est un entier = Min(x1,x2) +1 // permet de définir  abscisse du coin haut gauche en éliminant le cadre rouge de la zone de sélection
    ychg est une entier = Min(y1,y2) +1// permet de définir ordonnée du coin haut gauche
    xcbd est un entier = Max (x1,x2) -1
    ycbd est un entier = Max (y1,y2) -1
     
    hauteurimg = ycbd-ychg 
    largeurimg = xcbd-xchg 
    dCopieImage(IMG_photo,IMG_photo,copieSrcCopie,xchg+1,ychg+1,hauteurimg,largeurimg,0,0,hauteurimg,largeurimg)
     
     
    IMG_photo..Largeur=largeurimg
    IMG_photo..Hauteur=hauteurimg
    Enjoy....

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [CS3] Retirer le cadre de sélection sur une image-lien
    Par psykam dans le forum Dreamweaver
    Réponses: 6
    Dernier message: 22/03/2011, 23h47
  2. Réponses: 0
    Dernier message: 19/05/2010, 15h42
  3. Cadre de sélection sur contrôle dynamique
    Par Thiby dans le forum MFC
    Réponses: 3
    Dernier message: 17/06/2009, 20h51
  4. [CR] Problème de sélection sur un champ date
    Par noluc dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 21/11/2003, 17h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo