Question sur X et Y

Résolu
cs_roger53 Messages postés 3 Date d'inscription jeudi 11 janvier 2007 Statut Membre Dernière intervention 21 janvier 2007 - 21 janv. 2007 à 19:32
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 - 21 janv. 2007 à 22:53
Salut :)


Je commance à peine l'apprentissage du visual basic et là, j'essaie de
réaliser un petit projet. J'ai presque terminer, mais il y a toujours 2
truc qui m'intrigue T.T .


Comment faire pour obtenir les coordoner X, Y d'un picture box. (Le
picture box est à l'intérieur d'un autre picture box si ça  peut
changer quelque chose.)


Comment faire pour savoir la couleur à un point précis. (Par exemple, si je demande "de quel couleur est le pixel située à (442,843)" )

11 réponses

jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
21 janv. 2007 à 19:46
Les événements Mous_move, Mouse_Down et Mouse_Up sont assortis de ces coordonnées X et Y correspondant au pixel survolé ou cliqué.

La méthode Point (aide en ligne) appliquée à ces coordonnées te retourne un long représentant la valeur de la couleur du pont ayant ces coordonnées
3
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
21 janv. 2007 à 20:44
Couleur = Picture1.Point(442,843)

@+

E.B.
3
Utilisateur anonyme
21 janv. 2007 à 19:59
Salut,

Coordonnées xy d'une PictureBox ... oui mais par rapport à quoi ? la PictureBox parente ? la Form, l'écran ? la tour Eiffel ? ...

Utilise l'api GetPixel (
http://docvb.free.fr/apidetail.php?idapi=150
)






__________
Kenji
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
21 janv. 2007 à 20:50
Bonsoir, Charles,

Les coordonnées X et Y retournées par les événements ci-dessus sont par rapport au coin supéroeur gauche de la PictureBox et sont en unités logiques de la pictureBox (donc en Pixels pour un Scalemode en Pixels, etc...)
Les coordonnées utulisées par la méthode Objet.point (donc chez notre ami Picture1.Point(X,Y) ) sont également en unités logiques de la pictureBox  et également par rapport au coin supérieur gauche de la PictureBox

Aucun problème, donc, ... et la preuve :

une form, 1 label label1, le code qui suit... et on survole la picturebox avec la souris

Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
   Label1.Caption = X & " " & Y & " " & Picture1.Point(X, Y)
   Picture1.PSet (X, Y), vbRed
End Sub
et ceci sera toujours vrai, quel que soit le scalemode de la Form et celui de la picturebox !

Par goût personnel, je n'utilise personnellement pas l'interface de VB, donnant la    préférence, comme toi, aux fonctions de l'API de Windows... Mais notre ami nous montre (et le dit) qu'il en est à peine à l'apprentissage. Mettons-nous donc à son niveau
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
21 janv. 2007 à 21:01
Ben, il demmande les coordonnées de la PictureBox (propriétées left et top de celle-ci), pas de la souris dans la picturebox.
"Comment faire pour obtenir les coordoner X, Y d'un picture box.






"




Je pense qu'il veut avoir ses coordonnées par rapport à un autre obejet.
Surtout qu'il présise qu'elle est contenu dans un autre PictureBox

Ma boule de cristal doit être cassé







__________
Kenji
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
21 janv. 2007 à 21:08
Ben Charles ....
Il s'est mal exprimé, c'est tout ...
Quant aux coordonées de la pictureBox, elles n'ont, quant à elles, rien à voir avec celles de la souris...

Je pense que ta boule de cristal est endommagée ou enfumée (aére un peu la pièce ...)

Quant au code que j'ai mis au dessus, il est vrai, même pour une pictureBox mise dans une PictureBox qui est mise dans une pictureBox elle-même mise dans une pictureBox... etc... et même si chacune d'entre elles a un Scalemode différent...

Il retourne/fixe la couleur du point survolé de la PictureBox traitée...

Essaye
0
cs_roger53 Messages postés 3 Date d'inscription jeudi 11 janvier 2007 Statut Membre Dernière intervention 21 janvier 2007
21 janv. 2007 à 22:20
Alors pour question numéro 1, sa va.

Mais pour la couleur a un point, la sa va vraiment pas ...
Alors j'essaie d'y aller avec point() et voilà mon code:

couleur1 = Picture1.Point(X1, Y1).Color

Couleur 1 est une variable. J'ai essayer un peu tout les type possible (integer, string, single,...) mais je ne sait pas trop lequel prendre.
X1, Y1 sont des variable de type Integer.

Ce que j'essaie de faire avec ça c'est que couleur1 contienne la couleur au point (x1, y1)
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
21 janv. 2007 à 22:25
"couleur1 = Picture1.Point(X1, Y1).Color" ???


Que vient faire .Color là dedans, hein ?

Regarde mon code plus heut et enlève-moi celà vite fait bien fait !
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
21 janv. 2007 à 22:37
Et je vois qu'en plus tu avais la syntaxe de 15669 EBArtSoft
=15669 Couleur = Picture1.Point(442,843)
où vois-tu un .color là dedans ?
et d'op vient donc ce color qui ne veut dire quelque chose qu'en espagnol ?

et dis-moi : as-tu au moins ouvert ton aide en ligne sur le mot Point ? (tu y aurais vu la même syntaxe que la mienne et celle de =15669 EBArtSoft

Je ne suis pas content du tout ...
0
cs_roger53 Messages postés 3 Date d'inscription jeudi 11 janvier 2007 Statut Membre Dernière intervention 21 janvier 2007
21 janv. 2007 à 22:48
oops désoler

Merci beaucoup pour toute les réponses :)
Mais j'aimerai pousser la chose un peu plus loin XD.

À l'intérieur de picturebox1, il y a picturebox2. Picturebox2 a la taille 480 par 480.

couleur1 = Picture1.Point(Picture2.Left - 240, Picture2.Top - 240)

(Picture2.Left - 240, Picture2.Top - 240) représente le point central de picturebox2. vrai?
pourtant cette ligne me donne l'erreur "overflow" lors de la compilation.

Des idées?
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
21 janv. 2007 à 22:53
Attends, là !
1) tu en as fini avec cette discussion. Tu valides donc les réponses  EBArtSoft et jmfmarques (bonnes toutes deux)
2) tu ouvres une nouvelle discussion avec ton nouveau sujet, en lui donnant un titre révêlateur, cette fois-ci, et en  l'exposant avec précision.

Merci
0
Rejoignez-nous