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...
Partager