Bouger une image sur une form en cliquant dessus et en bougeant la souris [Résolu]

Yil2201
Messages postés
134
Date d'inscription
mercredi 1 décembre 2004
Dernière intervention
10 août 2008
- 6 févr. 2006 à 17:08 - Dernière réponse : wolf691300
Messages postés
41
Date d'inscription
mardi 15 juin 2004
Dernière intervention
31 mars 2006
- 8 févr. 2006 à 12:15
Salut à tous! Voila, ce que j'aimerais faire, c'est un petit programme de conception graphique, alors, j'ai une image1, et j'aimerais la faire glisser sur la form pour que l'user puisse choisir son emplacement. Sauriez-vous m'ider ? Ca se passe dans l'evenement on Mouse Move non ?
A+


[url]www.yiliman2201.be.tf/url
Mon site !
Afficher la suite 

Votre réponse

16 réponses

Meilleure réponse
Nicolas___
Messages postés
1039
Date d'inscription
jeudi 2 novembre 2000
Dernière intervention
24 avril 2013
- 6 févr. 2006 à 17:25
3
Merci
voila ben tu places ton Timage ds un panel et tu fais ceci
procedure TForm1.Panel1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
ReleaseCapture;
panel1.Perform(WM_SYSCOMMAND, $F012, 0);
end;

je sais pas prq mais ca marche pas directement ac un Timage slt

Merci Nicolas___ 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 94 internautes ce mois-ci

Commenter la réponse de Nicolas___
Nicolas___
Messages postés
1039
Date d'inscription
jeudi 2 novembre 2000
Dernière intervention
24 avril 2013
- 6 févr. 2006 à 17:19
0
Merci
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
ReleaseCapture;
form1.Perform(WM_SYSCOMMAND, $F012, 0);
end;
Commenter la réponse de Nicolas___
Nicolas___
Messages postés
1039
Date d'inscription
jeudi 2 novembre 2000
Dernière intervention
24 avril 2013
- 6 févr. 2006 à 17:24
0
Merci
non tromper de sujet mais c un truc du genre
Commenter la réponse de Nicolas___
Yil2201
Messages postés
134
Date d'inscription
mercredi 1 décembre 2004
Dernière intervention
10 août 2008
- 6 févr. 2006 à 17:28
0
Merci
Ok, merci bêaucoup, je me suis inspiré de ta réponse et d'une source dont je ne toruve plus l'url, ca fonctionne a merveille ! Merci pour cette réponse si rapide!

[url]www.yiliman2201.be.tf/url
Mon site !
Commenter la réponse de Yil2201
Cirec
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
3 août 2018
- 6 févr. 2006 à 17:44
0
Merci
Salut,
la bonne commande est :

ReleaseCapture;
Perform (WM_SYSCOMMAND, SC_MOVE or HTCAPTION, 0);

parce que $F012 ça veut rien dire

@+
Cirec
Commenter la réponse de Cirec
jlen100
Messages postés
1651
Date d'inscription
samedi 10 juillet 2004
Dernière intervention
25 juillet 2014
- 6 févr. 2006 à 17:47
0
Merci
salut,

sans passer par un pannel:

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,

Y: Integer);

begin

with sender as Timage do

begin

if (ssLeft in Shift)

then

begin

Top:=Top+Y;

if Top< 0 then top:=0;

if
Top>Form1.Height-Height-32 then
Top:=Form1.Height-Height-32 ;

Left:=Left+X;

if Left<0 then Left:=0;

if Left>Form1.Width -Width then Left:=Form1.Width-Width ;

end;

end;

end;



@+



jlen
Commenter la réponse de jlen100
Cirec
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
3 août 2018
- 6 févr. 2006 à 17:51
0
Merci
oui ça c'est la bonne vielle méthode qui fonctionne avec tout
comme quoi ça peut toujours servir c'est un peut plus long mais tout aussi fonctionnel

@+
Cirec
Commenter la réponse de Cirec
jlen100
Messages postés
1651
Date d'inscription
samedi 10 juillet 2004
Dernière intervention
25 juillet 2014
- 6 févr. 2006 à 18:01
0
Merci
surtout qu'avec perform si tu clique sur l'image ça ne fonctionne pas
-->il faut obligatoirement cliquer sur le panel; ce qui n'est pas
vraiment l'effet recherché!!



@+

jlen
Commenter la réponse de jlen100
Cirec
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
3 août 2018
- 6 févr. 2006 à 18:05
0
Merci
euh désolé mais j'ai fait le teste et ça fonctionne :

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
ReleaseCapture;
Perform (WM_SYSCOMMAND, SC_MOVE or HTCAPTION, 0);
end;

@+
Cirec
Commenter la réponse de Cirec
Cirec
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
3 août 2018
- 6 févr. 2006 à 18:06
0
Merci
oups pardon
c'est la form qui bouge et c'est pas l'effet recherché
pardon

@+
Cirec
Commenter la réponse de Cirec
jlen100
Messages postés
1651
Date d'inscription
samedi 10 juillet 2004
Dernière intervention
25 juillet 2014
- 6 févr. 2006 à 19:30
0
Merci
oui si tu veux bouger la form c'est nickel tu me diras vu que l'image est sur la form elle bouge aussi!!

@+

jlen
Commenter la réponse de jlen100
Nicolas___
Messages postés
1039
Date d'inscription
jeudi 2 novembre 2000
Dernière intervention
24 avril 2013
- 6 févr. 2006 à 22:33
0
Merci
@Jlen
en meme temps il suffit de mettre la taille du panel = a la taille de l'image ou du moins 2 voir 3 pixels plus grand de chaque cote pr que ca marche et que se ne soit pas trop genant mais c est sur que ta methode est pile poil ce que tu demandais ...

Ciao
Commenter la réponse de Nicolas___
jlen100
Messages postés
1651
Date d'inscription
samedi 10 juillet 2004
Dernière intervention
25 juillet 2014
- 6 févr. 2006 à 23:00
0
Merci
ce que j'ai voulu dire c'est que pour ta méthode fonctionne il faut
obligatoirement cliquer en dehors de l'image car si tu clique sur
l'image c'est celle-ci qui intercepte le message et il ne se passe
rien: c'est la meme chose que si elle était placée directement sur la
form.

Ce qui rend le fonctionnement plutot désagréable sutout si tu mets les
propriétés bevelinner et bevelouter du panel à bsnone mais bon là
je chipote



@+

jlen
Commenter la réponse de jlen100
Cirec
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
3 août 2018
- 6 févr. 2006 à 23:05
0
Merci
@ Nicolas__
as-tu vu la précision que j'ai apporté sur le code plus haut, ce qui permet de comprendre ce que $F012 signifie

@+
Cirec
Commenter la réponse de Cirec
Nicolas___
Messages postés
1039
Date d'inscription
jeudi 2 novembre 2000
Dernière intervention
24 avril 2013
- 7 févr. 2006 à 16:59
0
Merci
@Jlen oui c juste ...
@ Cirec Merci,moi meme je ne savais pas ce que cela voulait dire , je connaissais juste l astuce

Ciao
Commenter la réponse de Nicolas___
wolf691300
Messages postés
41
Date d'inscription
mardi 15 juin 2004
Dernière intervention
31 mars 2006
- 8 févr. 2006 à 12:15
0
Merci
Les codes les plus court et les plus simples sont parfois les meilleurs codes ...



Bonne programmation à vous tous ... ((( "travailler c'est s'amuser ..."



Wolf691300.
Commenter la réponse de wolf691300

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.