Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Objets graphiques selectables

3 réponses
Avatar
Claude Animo
Bonjour,
je souhaite pouvoir obtenir, dans une application graphique, la
fonctionnalité suivante: définir des objets graphiques sensibles à des
actions utilisateurs tels que le clic sur le dessin de l'objet ou son survol
par le curseur de la souris.
Par objets graphiques sensibles j'entends que ces objets répondent à ces
actions utilisateurs en envoyant un évènement, comme le fait le bouton d'un
formulaire par exemple.
Comment coder de telles classes ?
Merci de votre aide.
Claude Animo

3 réponses

Avatar
Gilles TOURREAU
Le Sat, 18 Aug 2007 16:02:02 +0200, Claude Animo a
écrit:

Bonjour,
je souhaite pouvoir obtenir, dans une application graphique, la
fonctionnalité suivante: définir des objets graphiques sensibles à des
actions utilisateurs tels que le clic sur le dessin de l'objet ou son
survol
par le curseur de la souris.
Par objets graphiques sensibles j'entends que ces objets répondent à ces
actions utilisateurs en envoyant un évènement, comme le fait le bouton
d'un
formulaire par exemple.
Comment coder de telles classes ?
Merci de votre aide.
Claude Animo





Utiliser les événements MouseClick, MouseHover, MouseLeave de votre
contrôle graphique.

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
Avatar
Claude Animo
Je me suis mal expliqué:
Les objets graphiques dont je parle sont des lignes, des rectangles des
courbes de bézier, du texte, du dessin à main levée etc... placés sur un
"canvas". Je voudrais les rendre sensibles: par exemple sélectionner un
objet graphique dessiné pour le déplacer, le supprimer, le modifier, etc...
Autant il est possible pour des formes géométriques simples d'entrevoir des
solutions (pas très élégantes et gourmandes en calcul), autant je n'en vois
aucune pour traiter le cas de formes géométriques qui ne relèvent d'aucune
catégorie particulières (dessin à main levée par exemple)
merci de votre aide
"Gilles TOURREAU" a écrit dans le message de news:

Le Sat, 18 Aug 2007 16:02:02 +0200, Claude Animo a
écrit:

Bonjour,
je souhaite pouvoir obtenir, dans une application graphique, la
fonctionnalité suivante: définir des objets graphiques sensibles à des
actions utilisateurs tels que le clic sur le dessin de l'objet ou son
survol
par le curseur de la souris.
Par objets graphiques sensibles j'entends que ces objets répondent à ces
actions utilisateurs en envoyant un évènement, comme le fait le bouton
d'un
formulaire par exemple.
Comment coder de telles classes ?
Merci de votre aide.
Claude Animo





Utiliser les événements MouseClick, MouseHover, MouseLeave de votre
contrôle graphique.

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr


Avatar
Gilles TOURREAU
Le Sat, 18 Aug 2007 16:57:52 +0200, Claude Animo a
écrit:

Je me suis mal expliqué:
Les objets graphiques dont je parle sont des lignes, des rectangles des
courbes de bézier, du texte, du dessin à main levée etc... placés sur un
"canvas". Je voudrais les rendre sensibles: par exemple sélectionner un
objet graphique dessiné pour le déplacer, le supprimer, le modifier,
etc...
Autant il est possible pour des formes géométriques simples d'entrevoir
des
solutions (pas très élégantes et gourmandes en calcul), autant je n'en
vois
aucune pour traiter le cas de formes géométriques qui ne relèvent
d'aucune
catégorie particulières (dessin à main levée par exemple)
merci de votre aide
"Gilles TOURREAU" a écrit dans le message de
news:

Le Sat, 18 Aug 2007 16:02:02 +0200, Claude Animo
a
écrit:

Bonjour,
je souhaite pouvoir obtenir, dans une application graphique, la
fonctionnalité suivante: définir des objets graphiques sensibles à des
actions utilisateurs tels que le clic sur le dessin de l'objet ou son
survol
par le curseur de la souris.
Par objets graphiques sensibles j'entends que ces objets répondent à
ces
actions utilisateurs en envoyant un évènement, comme le fait le bouton
d'un
formulaire par exemple.
Comment coder de telles classes ?
Merci de votre aide.
Claude Animo





Utiliser les événements MouseClick, MouseHover, MouseLeave de votre
contrôle graphique.

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr







Vous devez d'un coté garder en mémoire toutes les informations sur les
objets (position, taille,...etc) dans des structures de données
correspondant le mieux à vos besoins (dictionnaire, collection, tableau,
liste chainée...etc).

Tous vos objets doivent dériver au moins d'une classe commune appelé
"ObjetGraphique" qui possède une méthode abstraite : Boolean EstDans(Point
p)
Ensuite chaques objets doivent implémenter leur propre méthode pour savoir
si un point se trouvent à l'intérieur de l'objet.

Au clic de l'utilisateur, pour savoir sur quel objet l'utilisateur a
cliqué, il suffit de parcourir des structures de données en appelant à
chaque fois la méthode EstDans().

Pour les dessins à main levée, le mieux est de trouver les 4 points les
plus extérieurs et ainsi avoir une zone rectangulaire qui correspond à la
sélection possible.

En ce qui concerne votre structure de données, il faut trouver le
compromis entre espace mémoire/rapidité de calcul... Il est parfois
interressant de mettre des informations en redondances afin d'accélerer
les recherches, cependant cela prendra beaucoup plus de mémoire et
nécessite un parfaite cohérence des données lors des mises à jours...

Cordialement

--
Gilles TOURREAU


S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr