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

Yil2201 134 Messages postés mercredi 1 décembre 2004Date d'inscription 10 août 2008 Dernière intervention - 6 févr. 2006 à 17:08 - Dernière réponse : wolf691300 41 Messages postés mardi 15 juin 2004Date d'inscription 31 mars 2006 Dernière intervention
- 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 

16 réponses

Répondre au sujet
Nicolas___ 1039 Messages postés jeudi 2 novembre 2000Date d'inscription 24 avril 2013 Dernière intervention - 6 févr. 2006 à 17:25
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Nicolas___
Nicolas___ 1039 Messages postés jeudi 2 novembre 2000Date d'inscription 24 avril 2013 Dernière intervention - 6 févr. 2006 à 17:19
0
Utile
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___ 1039 Messages postés jeudi 2 novembre 2000Date d'inscription 24 avril 2013 Dernière intervention - 6 févr. 2006 à 17:24
0
Utile
non tromper de sujet mais c un truc du genre
Commenter la réponse de Nicolas___
Yil2201 134 Messages postés mercredi 1 décembre 2004Date d'inscription 10 août 2008 Dernière intervention - 6 févr. 2006 à 17:28
0
Utile
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 4217 Messages postés vendredi 23 juillet 2004Date d'inscription 3 avril 2018 Dernière intervention - 6 févr. 2006 à 17:44
0
Utile
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 1651 Messages postés samedi 10 juillet 2004Date d'inscription 25 juillet 2014 Dernière intervention - 6 févr. 2006 à 17:47
0
Utile
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 4217 Messages postés vendredi 23 juillet 2004Date d'inscription 3 avril 2018 Dernière intervention - 6 févr. 2006 à 17:51
0
Utile
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 1651 Messages postés samedi 10 juillet 2004Date d'inscription 25 juillet 2014 Dernière intervention - 6 févr. 2006 à 18:01
0
Utile
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 4217 Messages postés vendredi 23 juillet 2004Date d'inscription 3 avril 2018 Dernière intervention - 6 févr. 2006 à 18:05
0
Utile
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 4217 Messages postés vendredi 23 juillet 2004Date d'inscription 3 avril 2018 Dernière intervention - 6 févr. 2006 à 18:06
0
Utile
oups pardon
c'est la form qui bouge et c'est pas l'effet recherché
pardon

@+
Cirec
Commenter la réponse de Cirec
jlen100 1651 Messages postés samedi 10 juillet 2004Date d'inscription 25 juillet 2014 Dernière intervention - 6 févr. 2006 à 19:30
0
Utile
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___ 1039 Messages postés jeudi 2 novembre 2000Date d'inscription 24 avril 2013 Dernière intervention - 6 févr. 2006 à 22:33
0
Utile
@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 1651 Messages postés samedi 10 juillet 2004Date d'inscription 25 juillet 2014 Dernière intervention - 6 févr. 2006 à 23:00
0
Utile
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 4217 Messages postés vendredi 23 juillet 2004Date d'inscription 3 avril 2018 Dernière intervention - 6 févr. 2006 à 23:05
0
Utile
@ 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___ 1039 Messages postés jeudi 2 novembre 2000Date d'inscription 24 avril 2013 Dernière intervention - 7 févr. 2006 à 16:59
0
Utile
@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 41 Messages postés mardi 15 juin 2004Date d'inscription 31 mars 2006 Dernière intervention - 8 févr. 2006 à 12:15
0
Utile
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.