Bonjour,
Est ce que qq'un aurait il un module deja fait qui permettrai de bouger une image Jpeg avec la souris dans une form?
Merci...
Bonjour,
Est ce que qq'un aurait il un module deja fait qui permettrai de bouger une image Jpeg avec la souris dans une form?
Merci...
Bonjour
Tu peux mettre ton JPeg dans un TImage (il y a des composants pour ça ici) et faire qq chose à partir du code ci-dessous (je tire cela d'un de mes fichiers, il faut adapter un peu ce code, ici c'est pour déplacer le TImage avec le bouton droit)
C'est une possibilité, il doit y en avoir d'autres.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 // TFiche_Preferences est le nom de la fiche // Cadre est le nom du TImage int PosX, PosY, DragX, DragY; // pour déplacer les images bool rMouse; void __fastcall TFiche_Preferences::CadreMouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { if(Button == mbRight) // appui sur bouton droit souris { PosX = X; PosY = Y; // Coord souris rMouse = true; } } void __fastcall TFiche_Preferences::CadreMouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { TImage *Img = (TImage*)Sender; if (rMouse) { DragX = X-PosX; // nouvelles coord DragY = Y-PosY; Img->Left = Img->Left +DragX; // je déplace image Img->Top = Img->Top + DragY; } } //--------------------------------------------------------------------------- void __fastcall TFiche_Preferences::CadreMouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { rMouse = false; // fin appui sur bouton droit souris pour déplacement cadre }
Salut !
Il vaut mieux utiliser la méthode SetBounds pour fixer en une seule
passe les nouvelles coordonnées de l'image. Celà présente l'avantage de
minimiser les effets de scintillement, sans les supprimer tout à fait.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 bool MoveFlag = false; int Movex; int Movey;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 void __fastcall TForm1::Image1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { MoveFlag = true; Movex = X; Movey = Y; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { if(MoveFlag) { Image1->SetBounds( Image1->Left + X - Movex, Image1->Top + Y - Movey, Image1->Width, Image1->Height); } }Pour supprimer les scintillement il faudrait dessiner l'image sur ma form...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 void __fastcall TForm1::Image1MouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y) { MoveFlag = false; }
A plus !
Un grand merci à vous tous...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager