Deplacer une image

DraaFil Messages postés 264 Date d'inscription mercredi 16 avril 2003 Statut Membre Dernière intervention 23 mars 2012 - 5 janv. 2007 à 20:08
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 - 5 janv. 2007 à 22:30
Bonjour a tous,

J'ai une image dans une form, je voudrais deplacer cette derniere a l'endroit ou j'ai cliquez avec la souris, mais je veux pas quel apparaise a cettte endroit, je veux la voir ce deplacer automatiquement a ce point.

Merci

DraaFIl

15 réponses

Reacen Messages postés 282 Date d'inscription mardi 22 août 2006 Statut Membre Dernière intervention 21 décembre 2010
5 janv. 2007 à 20:21
Si j'ai bien compris , tu veux avoir l'effet de l'image qui dessent ...
  Je pense qu'il faut utiliser des Timer exemple :

Dans Timer 1 :

Image1.top = label2.caption
Image1.Left = label1.caption

label1.caption = label1.caption + 1
label2.caption = label2.caption + 1

car avec le For i = 1 to 100 ne va pas bien fonctionner dans un pc faible ...


  fé marcher ta servelle pour  trouver une solution a partire des timer  (sinon , c la technique que j'itulise tj !)


  si tu  trouve une autre plus simple .... tant mieux !
Technologie Reacen²
0
Utilisateur anonyme
5 janv. 2007 à 20:44
Salut,

Tiens, un exemple, avec un timer (TimerMove), une picturebox (TaPictureBox) et une autre (PicMove) dans la premiere.
Tu attribut une image via la propriété Picture de TaPictureBox et tu colle ce code :




Const MoveSpeed As Integer = 20
Dim Img As StdPicture
Dim MoveX As Single, MoveY As Single

Private Sub Form_Load()
  TimerMove.Enabled = False
  TimerMove.Interval = 1
  PicMove.BorderStyle = 0
  Set Img = TaPictureBox.Picture
  Set TaPictureBox.Picture = Nothing
  Set PicMove.Picture = Img
  TaPictureBox.AutoRedraw = True
  PicMove.Width = Img.Width
  PicMove.Height = Img.Height
End Sub

Private Sub TaPictureBox_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  ' PicMove.Move MoveX, MoveY
  MoveX = X
  MoveY = Y
  TaPictureBox.Cls
  PicMove.Visible = True
  TimerMove.Enabled = True
End Sub

Private Sub TimerMove_Timer()
  Dim L As Integer: L = CInt(Sqr((MoveX - PicMove.Left) ^ 2 + (MoveY - PicMove.Top) ^ 2))
  If L <= 20 Then
    TaPictureBox.PaintPicture Img, MoveX, MoveY
    PicMove.Visible = False
    TimerMove.Enabled = False
  Else
    PicMove.Move PicMove.Left + (MoveSpeed / L) * (MoveX - PicMove.Left), _
                 PicMove.Top(MoveSpeed / L) * (MoveY - PicMove.Top)
  End If
End Sub,

----

(Coloration syntaxique automatique par Kenji)





__________
Kenji
0
Utilisateur anonyme
5 janv. 2007 à 20:46
Désolé, la ligne que j'ai modifié après coup, il m'a viré un "+"


PicMove.Move PicMove.Left + (MoveSpeed / L) * (MoveX - PicMove.Left), _
             PicMove.Top + (MoveSpeed / L) * (MoveY - PicMove.Top)




__________
Kenji
0
DraaFil Messages postés 264 Date d'inscription mercredi 16 avril 2003 Statut Membre Dernière intervention 23 mars 2012
5 janv. 2007 à 21:27
je vais analyse votre code! merci!

Parcontre avez-vous tenu conte qu'il doit s'arrete ou j'ai cliquez avec la souris??

DraaFil
0

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

Posez votre question
DraaFil Messages postés 264 Date d'inscription mercredi 16 avril 2003 Statut Membre Dernière intervention 23 mars 2012
5 janv. 2007 à 21:27
je vais analyse votre code! merci!

Parcontre avez-vous tenu conte qu'il doit s'arrete ou j'ai cliquez avec la souris??

DraaFil
0
DraaFil Messages postés 264 Date d'inscription mercredi 16 avril 2003 Statut Membre Dernière intervention 23 mars 2012
5 janv. 2007 à 21:27
je vais analyse votre code! merci!

Parcontre avez-vous tenu conte qu'il doit s'arrete ou j'ai cliquez avec la souris??

DraaFil
0
DraaFil Messages postés 264 Date d'inscription mercredi 16 avril 2003 Statut Membre Dernière intervention 23 mars 2012
5 janv. 2007 à 21:31
ok j'ai vu, ton code pour la souris

mais quand je l'oad ma form ma picture disparait et quand je clique j'ai une erreur sur cette ligne

TaPictureBox.PaintPicture Img, MoveX, MoveY

 (on peut-tu faire paraille avec une imagebox ?

Merci
DraaFil
0
Utilisateur anonyme
5 janv. 2007 à 21:42
Non, il faut forcement une picturebox.
Avec une imagebox, on ne peut pas chosir l'emplacement de l'image dans celle-ci.




__________
Kenji
0
DraaFil Messages postés 264 Date d'inscription mercredi 16 avril 2003 Statut Membre Dernière intervention 23 mars 2012
5 janv. 2007 à 21:48
ok mias pour les autre probleme si haut as-tu une idee
0
Utilisateur anonyme
5 janv. 2007 à 21:57
Ben dis moi quel est l'erreur ?






__________
Kenji
0
DraaFil Messages postés 264 Date d'inscription mercredi 16 avril 2003 Statut Membre Dernière intervention 23 mars 2012
5 janv. 2007 à 21:59
J'ai trouver, j'ai supprimer toutes les img et sa fonctionne #1

par contre question, comment mettre une picturebox transparente

Merci
0
Utilisateur anonyme
5 janv. 2007 à 22:02
Ca je sais pas trop, fait une recherche la dessus. Ca doit surment exister.






__________
Kenji
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
5 janv. 2007 à 22:09
Essaye d'être précis !
Une picturebox "transparente" (comme tu dis) serait une picturebox dont in ne verrait plus l'image et qui laisserait voir, à la place, tout ce qui est "derrière" elle.

Comme je ne pense pas du tout que c'est là le but recherché, j'attends que tu saches te montrer très précis, pour te répondre, ma foi, ce que je devine déjà que je te répondrai, bien évidemment  ! 

Alors : donant donnant : ta précision contre ma réponse !
0
DraaFil Messages postés 264 Date d'inscription mercredi 16 avril 2003 Statut Membre Dernière intervention 23 mars 2012
5 janv. 2007 à 22:12
Je vais etre plus clair pour toi! j'ai une image (gif) donc il y a transparence sur cette image, ma picturebox me fait apparaitre cette transparence blanc
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
5 janv. 2007 à 22:30
Une image .gif dotée d'une transparence pour une zone peut être utilisée directement dans un contrôle image et ce contrôle image peut alors être déplacé, avec sa transparence de zone, au dessus de n'importe quelle pictureBox . On ne verra alors se déplacer que sa partie non transparente. Il en va de même en ce qui concerne une icône dotée d'une zone transparente.

Il esiste également la possibilité de créer une transparence d'une couleur (à définir) d'une picturebox, et il faut alors, si l'on veut superposer l'image de cette picturebox à celle d'une autre picturebox tout en "ignorant" la couleur définie comme transparente, utiliser une fonction de l'Api de Windows...

Ce sont là 2 traitements complètement différents et le deuxième nécessite une maîtrise minimum déjà acquise.
Question donc : où en es-tu de tes connaissances en traitement d'images et en utilisation de l'Api de Windows ?
Si tu en es encore au début; il sera plus sage de faire avec ce que tu sais déjà manipuler sans hésitation .

En résumé : que cherches-tu à faire ? Un simple effet de mouvement d'une image avec zone "transparente" par dessus une picturebox (pour un jeu, une animation, etc...) ?
0
Rejoignez-nous