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 Statut Membre Dernière intervention 10 août 2008 - 6 févr. 2006 à 17:08
wolf691300 Messages postés 41 Date d'inscription mardi 15 juin 2004 Statut Membre 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 !

16 réponses

Nicolas___ Messages postés 992 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 24 avril 2013 1
6 févr. 2006 à 17:25
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
3
Nicolas___ Messages postés 992 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 24 avril 2013 1
6 févr. 2006 à 17:19
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
ReleaseCapture;
form1.Perform(WM_SYSCOMMAND, $F012, 0);
end;
0
Nicolas___ Messages postés 992 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 24 avril 2013 1
6 févr. 2006 à 17:24
non tromper de sujet mais c un truc du genre
0
Yil2201 Messages postés 134 Date d'inscription mercredi 1 décembre 2004 Statut Membre Dernière intervention 10 août 2008
6 févr. 2006 à 17:28
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 !
0

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

Posez votre question
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
6 févr. 2006 à 17:44
Salut,
la bonne commande est :

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

parce que $F012 ça veut rien dire

@+
Cirec
0
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
6 févr. 2006 à 17:47
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
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
6 févr. 2006 à 17:51
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
0
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
6 févr. 2006 à 18:01
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
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
6 févr. 2006 à 18:05
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
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
6 févr. 2006 à 18:06
oups pardon
c'est la form qui bouge et c'est pas l'effet recherché
pardon

@+
Cirec
0
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
6 févr. 2006 à 19:30
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
0
Nicolas___ Messages postés 992 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 24 avril 2013 1
6 févr. 2006 à 22:33
@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
0
jlen100 Messages postés 1606 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 25 juillet 2014 13
6 févr. 2006 à 23:00
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
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
6 févr. 2006 à 23:05
@ 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
0
Nicolas___ Messages postés 992 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 24 avril 2013 1
7 févr. 2006 à 16:59
@Jlen oui c juste ...
@ Cirec Merci,moi meme je ne savais pas ce que cela voulait dire , je connaissais juste l astuce

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



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



Wolf691300.
0
Rejoignez-nous