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

image deplacable

14 réponses
Avatar
John-Pet
Hello

Dans une picturebox contenant comme picture un carte, j'ai mis une
autre image (par dessus la première) mais très petite representant une
bouée
Je voudrais pouvoir déplacer cette bouée avec la souris
Quelqu'un a t'il une piste pour y arriver

Merci

JP

--
Adresse mail : john-pet@wanadoo.fr
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net

10 réponses

1 2
Avatar
Jacques93
Bonjour John-Pet,
John-Pet a écrit :
Hello

Dans une picturebox contenant comme picture un carte, j'ai mis une autre
image (par dessus la première) mais très petite representant une bouée
Je voudrais pouvoir déplacer cette bouée avec la souris
Quelqu'un a t'il une piste pour y arriver




Peut être t'inspirer de la gestion des sprites. Par exemple :

<http://www.vbfrance.com/codes/GESTION-SPRITES-TRANSPARENCE-ANIMATION_21332.aspx>

--

Cordialement,

Jacques.
Avatar
John-Pet
Merci pour ta réponse

mais ce que je cherche c'est de prendre l'a bouée avec un clic droit et
la déposer en relachant la souris

JP


Jacques93 a formulé la demande :
Bonjour John-Pet,
John-Pet a écrit :
Hello

Dans une picturebox contenant comme picture un carte, j'ai mis une autre
image (par dessus la première) mais très petite representant une bouée
Je voudrais pouvoir déplacer cette bouée avec la souris
Quelqu'un a t'il une piste pour y arriver




Peut être t'inspirer de la gestion des sprites. Par exemple :

<http://www.vbfrance.com/codes/GESTION-SPRITES-TRANSPARENCE-ANIMATION_21332.aspx>



--
Adresse mail :
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net
Avatar
David
Bonjour John-Pet,

Je pense ce cet ambrion de programme
vous sera utile.
Je vous mets le programme tel quel, brute de décoffrage.
A vous d'extraire ce qui vous est vraiment utile.
Les 2 boutons ne vous seront d'aucune utilité.

http://users.skynet.be/DAVID/Fichiers_Tempo.htm

et cliquez sur déplacement
--
a+ Jean-Pol
Site Web : www.colovid.be
Site Web perso pour le fun : http://users.skynet.be/DAVID/


"John-Pet" a écrit dans le message de news:

Hello

Dans une picturebox contenant comme picture un carte, j'ai mis une autre
image (par dessus la première) mais très petite representant une bouée
Je voudrais pouvoir déplacer cette bouée avec la souris
Quelqu'un a t'il une piste pour y arriver

Merci

JP

--
Adresse mail :
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net




Avatar
bahn po
John-Pet a exprimé avec précision :
Hello

Dans une picturebox contenant comme picture un carte, j'ai mis une autre
image (par dessus la première) mais très petite representant une bouée
Je voudrais pouvoir déplacer cette bouée avec la souris
Quelqu'un a t'il une piste pour y arriver

Merci

JP



Option Explicit

Private Type POINTAPI
X As Long
Y As Long
End Type
Private Declare Function GetCursorPos Lib "user32" (lpPoint As
POINTAPI) As Long


Private Sub Picture2_MouseMove(Button As Integer, Shift As Integer, X
As Single, Y As Single)
Dim p As POINTAPI


If Button = 1 Then
Call GetCursorPos(p)
Picture2.Left = p.X * 15 - Form1.Left - 500
Picture2.Top = p.Y * 15 - Form1.Top - 500
Picture2.Refresh
End If

end sub


Ci-dessus un exemple d'une picture2 qui se déplace quand tu click
gauche dessus. Désolé pour la formule "p.X * 15 - Form1.Left - 500",
j'ai pas trouvé mieux, mais ça marche :)

Bonne soire.
Avatar
Jacques93
Bonjour John-Pet,
John-Pet a écrit :
Merci pour ta réponse

mais ce que je cherche c'est de prendre l'a bouée avec un clic droit et
la déposer en relachant la souris




Il suffit d'adapter le code (et l'image). Dans le code proposé, Homer
suit la souris; tu peux modifier assez simplement le comportement, en
ajoutant, par exemple une variable booléenne :

Dim bMouseDown As Boolean

dans le code de frmJeux, et adapter le code pour déterminer si on a
cliqué sur Homer :

Private Sub PicFond_MouseDown(Button As Integer, _
Shift As Integer, _
X As Single, Y As Single)
' Vérifie si on a cliqué sur Homer avec le
' bouton gauche
bMouseDown = (Button = vbLeftButton) And _
X >= Sprite(Homer).X And _
X <= (Sprite(Homer).X + Sprite(Homer).Largeur) And _
Y >= Sprite(Homer).Y And _
Y <= (Sprite(Homer).Y + Sprite(Homer).Hauteur)
End Sub

Private Sub PicFond_MouseUp(Button As Integer, _
Shift As Integer, _
X As Single, Y As Single)
bMouseDown = False

End Sub

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

' Mémorise la position de la souris pour placer Homer
' Si on a pas cliqué sur Homer on sort => Homer ne bouge pas.
If Not bMouseDown Then Exit Sub
Sprite(Homer).X = X
Sprite(Homer).Y = Y


L'intérêt, à mon sens, de cette méthode, est la fluidité du
déplacement, pas de d'effets de trainée, pas de déplacement saccadé.


--

Cordialement,

Jacques.
Avatar
Jacques93
John-Pet a écrit :
Merci pour ta réponse

mais ce que je cherche c'est de prendre l'a bouée avec un clic droit et
la déposer en relachant la souris




Ci-joint un petit programme simplifié, par rapport au lien, qui semble
répondre à ta demande. Sauf si la bouée est trop grosse ;-)

<http://cjoint.com/?kiu2KeF2Z1>

Difficile à placer ici, avec les images, et le code, pas très long, mais
les coupures de lignes sont fréquentes sur les API. Et mes pages perso
Orange sont inaccessibles :-(

Il faudrait fignoler pour pas sortir de l'écran, ou plutôt de la
feuille, mais c'est de l'ordre de la finition ...



Jacques93 a formulé la demande :
Bonjour John-Pet,
John-Pet a écrit :
Hello

Dans une picturebox contenant comme picture un carte, j'ai mis une
autre image (par dessus la première) mais très petite representant
une bouée
Je voudrais pouvoir déplacer cette bouée avec la souris
Quelqu'un a t'il une piste pour y arriver




Peut être t'inspirer de la gestion des sprites. Par exemple :

<http://www.vbfrance.com/codes/GESTION-SPRITES-TRANSPARENCE-ANIMATION_21332.aspx>







Ci-joint un petit programme simplifié, par rapport au lien, qui semble
répondre à ta demande. Sauf si la bouée est trop grosse ;-)

<http://cjoint.com/?kiu2KeF2Z1>
--

Cordialement,

Jacques.
Avatar
John-Pet
Je vous remercie tous les trois pour votre aide

voilà différentes façon pour résoudre mon problème avec chacun des + et
des -

Cordialement

JP

--
Adresse mail :
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net
Avatar
John-Pet
merci pour ton exemple
j'étais en train de simplifier le homer et cie

et voilà que ça me tombe du ciel
ça me va très bien

merci encore

Cordialement

JP

Jacques93 avait écrit le 08/10/2008 :
John-Pet a écrit :
Merci pour ta réponse

mais ce que je cherche c'est de prendre l'a bouée avec un clic droit et la
déposer en relachant la souris




Ci-joint un petit programme simplifié, par rapport au lien, qui semble
répondre à ta demande. Sauf si la bouée est trop grosse ;-)

<http://cjoint.com/?kiu2KeF2Z1>

Difficile à placer ici, avec les images, et le code, pas très long, mais les
coupures de lignes sont fréquentes sur les API. Et mes pages perso Orange
sont inaccessibles :-(

Il faudrait fignoler pour pas sortir de l'écran, ou plutôt de la feuille,
mais c'est de l'ordre de la finition ...



Jacques93 a formulé la demande :
Bonjour John-Pet,
John-Pet a écrit :
Hello

Dans une picturebox contenant comme picture un carte, j'ai mis une autre
image (par dessus la première) mais très petite representant une bouée
Je voudrais pouvoir déplacer cette bouée avec la souris
Quelqu'un a t'il une piste pour y arriver




Peut être t'inspirer de la gestion des sprites. Par exemple :

<http://www.vbfrance.com/codes/GESTION-SPRITES-TRANSPARENCE-ANIMATION_21332.aspx>







Ci-joint un petit programme simplifié, par rapport au lien, qui semble
répondre à ta demande. Sauf si la bouée est trop grosse ;-)

<http://cjoint.com/?kiu2KeF2Z1>



--
Adresse mail :
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net
Avatar
Jacques93
John-Pet a écrit :
merci pour ton exemple
j'étais en train de simplifier le homer et cie

et voilà que ça me tombe du ciel



Euh, étant un drôle de paroissien, je ne sais pas si le ciel ...

ça me va très bien




mais merci du retour :-)

--

Cordialement,

Jacques.
Avatar
Jacques93
Bonjour bahn po,
bahn po a écrit :
John-Pet a exprimé avec précision :
Hello

Dans une picturebox contenant comme picture un carte, j'ai mis une
autre image (par dessus la première) mais très petite representant une
bouée
Je voudrais pouvoir déplacer cette bouée avec la souris
Quelqu'un a t'il une piste pour y arriver

Merci

JP



Option Explicit

Private Type POINTAPI
X As Long
Y As Long
End Type
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI)
As Long


Private Sub Picture2_MouseMove(Button As Integer, Shift As Integer, X As
Single, Y As Single)
Dim p As POINTAPI


If Button = 1 Then
Call GetCursorPos(p)
Picture2.Left = p.X * 15 - Form1.Left - 500
Picture2.Top = p.Y * 15 - Form1.Top - 500
Picture2.Refresh
End If

end sub


Ci-dessus un exemple d'une picture2 qui se déplace quand tu click gauche
dessus. Désolé pour la formule "p.X * 15 - Form1.Left - 500", j'ai pas
trouvé mieux, mais ça marche :)




Le 15, à ma connaissance, est lié aux différentes unités utilisées, le
pixel pour une grande partie (si ce n'est la majorité) des Api's, le
twips par défaut pour VB (y' toujours pas d'échantillon de twips à
Sèvres !!!). Et un Pixel vaut 15 twips( ou Screen.TwipsPerPixel[X-Y]).
Jean-Marc ou François ou Patrice, ou ? savent peut être pourquoi, moi
pas, mais c'est comme ça depuis un moment. Il me semble toutefois qu'il
y avait l'idée, derrière cette unité, d'être indépendant du périphérique
(écran , imprimante, etc...) qui n'ont pas la même résolution physique.

Pour le 500, je dirai que c'est lié au type de fenêtre, par exemple
sizeable ou non, Fixed Dialog ou non, les bordures, et la barre de
titres n'ont pas la même dimension (voir avec GetSystemMetrics)

Mais 500, n'est peut être pas le meilleur chiffre, il vaut mieux un
multiple de 15, par exemple 495 ou 510, mais c'est un avis personnel.

--


Cordialement,

Jacques.
1 2