Objet graphique controlés

Résolu
johnill Messages postés 3 Date d'inscription jeudi 27 septembre 2007 Statut Membre Dernière intervention 20 octobre 2007 - 11 oct. 2007 à 18:25
johnill Messages postés 3 Date d'inscription jeudi 27 septembre 2007 Statut Membre Dernière intervention 20 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 ?

4 réponses

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

Merci à tous.
3
cs_niky Messages postés 168 Date d'inscription jeudi 28 juin 2001 Statut Membre Dernière intervention 18 octobre 2008 7
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é.
0
cs_rodcobalt22 Messages postés 193 Date d'inscription dimanche 10 février 2002 Statut Membre Dernière intervention 16 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
0
johnill Messages postés 3 Date d'inscription jeudi 27 septembre 2007 Statut Membre Dernière intervention 20 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.
0
Rejoignez-nous