Pb avec les cordonnees

Signaler
Messages postés
17
Date d'inscription
dimanche 9 janvier 2005
Statut
Membre
Dernière intervention
5 janvier 2008
-
Messages postés
17
Date d'inscription
dimanche 9 janvier 2005
Statut
Membre
Dernière intervention
5 janvier 2008
-
bonjour! j'ai un pb avec les cordonne en VB6, en fait j'ai un graphe dans une PictureBox et je veux afficher les cordonner d'un point dans le graphe selon l'echelle utiliser dans le graphe. pour cela j'ai utilisé les cordonner de la sourie a l'aide de Mousemouve sur le controle PictureBox, mais je sais pas comment convertir les cordonner X ,Y "qui donne la position de la sourie sur l'image", pour avoir les cordonner de la valeur afficher sur le graphe!!   

 

4 réponses

Messages postés
19
Date d'inscription
mercredi 28 juillet 2004
Statut
Membre
Dernière intervention
15 décembre 2007

Je te donne un exemple avec une pictureBox (Code VB6)

Dans le programme, il y a un pictureBox, 4 zones de texte:
-> 2 pour les coordonnées de la souris
-> 2 autres pour "fixer" un point sur la pictureBox

On définit la variable "graphique".
Lors du chargement de l'appli, on crée le lien vers la pictureBox puis on définit l'échelle par Scale.

Normalement le reste marche.

Dim graphique As Object

 

Private
Sub Form_Load()

Set
graphique = Picture1

graphique.Scale
(0, 5)-(10, 0)

End
Sub

 

Private
Sub Picture1_Click()

Text3.Text
= Text1.Text

Text4.Text
= Text2.Text

End
Sub

 

Private
Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As
Single)

Text1.Text
= X

Text2.Text
= Y

End
Sub

J'espère avoir d'aider.

A+
Messages postés
17
Date d'inscription
dimanche 9 janvier 2005
Statut
Membre
Dernière intervention
5 janvier 2008

Merci cedvinc , mais ça ne resout pas mon  probleme, en fait moi j'ai un graphe dans une PictureBox et je veux lorsque je clic sur la valeur 20 par exemple ( voir image :axe des X)  les valeurs qui s'affichent sont (X=20, Y=0) au lieu de (X=2100, y=1600)scalemode=twip
Messages postés
19
Date d'inscription
mercredi 28 juillet 2004
Statut
Membre
Dernière intervention
15 décembre 2007

Je pense avoir compris ton problème.
Tu récupères non pas les coordonnées de la PictureBox définie par Scale, mais la position de la souris dans ta PictureBox ou sur ta Form.

Avant toute chose, essaye mon exemple ci-dessus. Ca te prendra 10 secondes pour le tester et tu pourras l'appliquer à ton graphique.
J'ai déjà fait un programme comme tu es occupé de le faire (je ne le retrouve plus), et j'ai d'abord fait ce petit programme qui m'a été fort pratique.

Deuxième chose, utilise la proprièté Scale de la PictureBox pour définir ton échelle / coordonnées maximales de ce contrôle (différent de la taille réelle de l'objet défini par Size).

Troisième: utilise les propriétés de la souris comme MouseMove qui récupère la position de la souris en la stockant à chaque mouvement de la sousris dans une variable -> X, Y: Nombre (coordonnées) qui
spécifie la position en cours du pointeur de la souris. Les valeurs x
et y sont toujours exprimées en fonction du système de coordonnées
défini par les propriétés ScaleHeight, ScaleWidth, ScaleLeft
et ScaleTop de l'objet (absX=X et absY=Y par exemple). Puis la propriété Picture Click, qui affiche à l'écran: TextX.text= absX et TextY.text=absY par exemple.

Tu auras tes coordonnées voulues.

ou dans ce troisième cas, tu peux aussi utiliser la détection de bouton directement dans MouseMove.

Private
Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As
Single)

Text1.Text
= X

Text2.Text
= Y

If
(Button And vbLeftButton) Then

    Text3.Text = X

    Text4.Text = Y

End
If

End Sub
Messages postés
17
Date d'inscription
dimanche 9 janvier 2005
Statut
Membre
Dernière intervention
5 janvier 2008

Merci cedvinc , mais ça marche pas encor! j'ai essayer de le faire avec les proprieter scaletop,scalleft  mais j'ai arriver juste a positionner la valeur (0,0) l'origine du graphe.  est ce qu'il a une autre methode??