Objet graphique controlés [Résolu]

Signaler
Messages postés
3
Date d'inscription
jeudi 27 septembre 2007
Statut
Membre
Dernière intervention
20 octobre 2007
-
Messages postés
3
Date d'inscription
jeudi 27 septembre 2007
Statut
Membre
Dernière intervention
20 octobre 2007
-
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 ?

4 réponses

Messages postés
3
Date d'inscription
jeudi 27 septembre 2007
Statut
Membre
Dernière intervention
20 octobre 2007

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!

Merci à tous.
Messages postés
168
Date d'inscription
jeudi 28 juin 2001
Statut
Membre
Dernière intervention
18 octobre 2008
7
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é.
Messages postés
195
Date d'inscription
dimanche 10 février 2002
Statut
Membre
Dernière intervention
16 février 2016

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
Messages postés
3
Date d'inscription
jeudi 27 septembre 2007
Statut
Membre
Dernière intervention
20 octobre 2007

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.