johnill
Messages postés3Date d'inscriptionjeudi 27 septembre 2007StatutMembreDernière intervention20 octobre 2007
-
11 oct. 2007 à 18:25
johnill
Messages postés3Date d'inscriptionjeudi 27 septembre 2007StatutMembreDernière intervention20 octobre 2007
-
20 oct. 2007 à 00:15
Bonjour,
Je suis en train de réaliser un éditeur graphique et j’aimerais
pouvoir avoir un contrôle sur les objets dessiné (ligne, arc de cercle…). Par
exemple, une fois un segment dessiné pouvoir faire un double click sur la ligne
et générer une ouverture de Form. Il me semble qu’il faudrait associer un
control mais je ne vois pas comment faire. Une idée ou une autre suggestion ?
johnill
Messages postés3Date d'inscriptionjeudi 27 septembre 2007StatutMembreDernière intervention20 octobre 2007 20 oct. 2007 à 00:15
Bon j'ai trouvé une solution assez élégante. Sur chacun de mes segments je dessine un petit carré rouge représentant le control du segment pour lequel j'associe un événement.Comme chaque carré rouge représente une plage de pixel de mon graphic, lors d'un click de souris sur celui-ci, je vérifie que la souris se situe dans cette plage et si c'est le cas j'appelle les méthodes corespondantes au segment sélectionné. Sympa l'objet!
cs_niky
Messages postés168Date d'inscriptionjeudi 28 juin 2001StatutMembreDernière intervention18 octobre 20087 11 oct. 2007 à 19:05
Salut,
Tu peux imaginer une liste qui stocke tous les éléments dessinés (un peu comme le fait un outil de dessin vectoriel). Lorsque tu cliques sur ta zone de dessin, tu parcours cette liste à la recherche de l'objet intersecté.
cs_rodcobalt22
Messages postés193Date d'inscriptiondimanche 10 février 2002StatutMembreDernière intervention16 février 2016 16 oct. 2007 à 16:38
Entièrement d'accord,
En faite, je te conseil même de créer une classe qui stockera l'image en question (si image), ses coordonnée X, Y et Z, si tu veux gérer sa supperpostion, et d'autre propriété.
Ensuite tu dessines dans un controle, un panel par exemple. Lors d'un clique sur un panel, tu compare chaques éléments de ta collection d'objet à la recherche d'un élément ayant les mêmes coordonnées et étant le plus haut en terme de supperposition (Z).
Enfin, je verrai ça comme ça, mais chacun sa méthode (y en a même peut être des mieux).
exemple d'objet :
Point obj.Cordonnée
int obj.Supperposition
Image obj.Img
string obj.Nom
ect ...
RodCobalt22, vous salue bien
Pensez au TAG résolu ! Ainsi les réponses seront plus facile à trouver et les serial Helper iront plus vite
PS : Pardonnez mes fautes d'orthographe (All
johnill
Messages postés3Date d'inscriptionjeudi 27 septembre 2007StatutMembreDernière intervention20 octobre 2007 18 oct. 2007 à 07:41
Voilà j'ai réalisé une classe trajectoire contenant ma liste de segments (Segments => classe abstraite qui représente des arcs, lignes, zigzag, ...). Chaque segment a donc comme propriété une coordonnée XYZ et un nom. Pou ce qui est de l'affichage, je parcours ma liste de segments en appelant la méthode draw surchargée pour chaque type de segments qui celle-ci contient les méthode drawline, drawelipse, ect.. . Tout ceci fonctionne très bien, cependant ce que je ne sais pas comment faire c'est comment réaliser une sélection avec la souris d'un élément ligne (par exemple) sur le graphics après que celui-ci soit dessiné. C'est pourquoi j'avais pensé à intégrer des éléments de contrôle sur le graphics.