OVH Cloud OVH Cloud

[WD9]Dessin à la souris

2 réponses
Avatar
Gabuzomeu
Bonjour,

je cherche à pouvoir dessiner dans un champ image à l'aide de la souris.
J'ai trouvé de superbes exemples de dessin de formes mais jamais de
dessin à la souris. Quelqu'un s'est-il déjà penché sur le sujet ?
Merci

Dom

2 réponses

Avatar
Maax°\(51\)°
Salut


C'est relativement simple à réaliser.

Dans la fenetre qui contient ton champ image, tu déclare un booléen et deux
entiers :

bSourisEnfoncée est un booléen = Faux
nOldX, nOldY sont des entiers
dDebutDessin(CHAMPIMAGE)


Dans l'onglet Detail de la fenetre de description du champ image pense à
indiquer "Zone de clicage + Prioritaire sur les clics"
Dans le champ image, tu rajoutes un traitement "Souris gauche enfoncé", puis
"Souris survol" et enfin "Souris gauche relaché"

Dans le traitement "Souris gauche enfoncé" tu écris :

// Le dessin pourra se faire
bSourisEnfoncée = Vrai
nOldX = -1
nOldY = -1


Dans le traitement "Souris gauche relaché" tu écris :

// Le dessin ne peut plus se faire
bSourisEnfoncée = Faux
nOldX = -1
nOldY = -1



Dans le traitement "Souris survol" tu écris :

// Si le bouton de la souris est enfoncé, on peut dessiner
SI bSourisEnfoncée ALORS

// Si on a déjà pu sauvegarder la position de la souris
SI nOldX <> -1 ET nOldY <> -1 ALORS
// On trace un trait depuis la dernière position
dLigne(nOldX, nOldY, SourisPosX, SourisPosY)
SINON
// On démarre par un point
dPoint(SourisPosX, SourisPosY)
FIN

// Sauvegarde la position de la souris
nOldX = SourisPosX
nOldY = SourisPosY

FIN


Là, c'est vraiment la base (il manque la gestion du cliping, empecher le
curseur de sortir du champ image, etc...)
A partir de là, à toi de gérer les couleurs, l'épaisseur du trait etc...


@+
Maax°(51)°

"Gabuzomeu" a écrit dans le message de news:
43513215$0$3532$
Bonjour,

je cherche à pouvoir dessiner dans un champ image à l'aide de la souris.
J'ai trouvé de superbes exemples de dessin de formes mais jamais de dessin
à la souris. Quelqu'un s'est-il déjà penché sur le sujet ?
Merci

Dom


Avatar
Gabuzomeu
Merci pour ta réponse.

Dom