Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Déplacement souris + image [ Divers / Débutant(e) ] (katharos)

mardi 6 mars 2007 à 11:20:01 | Déplacement souris + image

katharos

J'aimerais pouvoir animer une image en l'agrandissant et en la mettant au premier plan juste quand la souris passe dessus cette image, quand la souris n'est plus dessus j'aimerais que l'image redeviennent comme avant. Merdi d'avance je ne trouve que des codes avec des clic

mardi 6 mars 2007 à 11:49:36 | Re : Déplacement souris + image

sylvunix

Bonjour katharos,

Je pense que tu as trouvé facilement l'évènement OnMouseMove de ton TImage qui est appelé lorsque la souris passe au dessus de l'image.

Le problème est que tu n'auras pas d'évènement pour te signaler que la souris n'est plus sur l'image.

Tu peux créer un timer qui après un certain temps (1000 ms par exemple) effectuera ce contrôle. Voici un exemple de code :

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  // Ici ton code pour agrandir l'image ...

  // Armer le timer
  Timer1.Enabled := True;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  // Regarder si la souris est en dehors de l'image
  if (Mouse.CursorPos.X-Form1.Left < Image1.Left) or
     (Mouse.CursorPos.X-Form1.Left > Image1.Left+Image1.Width) or
     (Mouse.CursorPos.Y-Form1.Top < Image1.Top) or
     (Mouse.CursorPos.Y-Form1.Top > Image1.Top+Image1.Height) then
  begin
    // Ici ton code pour réduire l'image ...

    // Désarmer le timer
    Timer1.Enabled := False;
  end;
end;

Il y a peut-être mieux mais en tout cas cette solution fonctionne ...

mardi 6 mars 2007 à 11:58:24 | Re : Déplacement souris + image

Loda

Membre Club
salut,

juste un "trucs" pour simplifier:

PtInRect

if not PtInRect(image1.boudsrect, Mouse.cursorpos) then
// (de mémoire)

A+

Loda

Se poser les bonnes questions est le premier pas pour trouver les bonnes réponses.

mardi 6 mars 2007 à 12:10:55 | Re : Déplacement souris + image

katharos

Oui merci j'avais trouvée OnMouseMove (bonne idée le timer) mais j'ai encore un probleme dans ton code tu as mis //Ici ton code pour agrandir l'image ... mais cette image ne s'agrandie pas. Aurai je oublié quelque chose j'ai juste fait :

   Image1.Height := 482;
   Image1.Width := 706;

à la place de Ici ton code pour agrandir l'image dans le OnMouseMove. Merci

mardi 6 mars 2007 à 12:17:29 | Re : Déplacement souris + image

katharos

Merci Loda mais je suis débutante, ou doi je placé ce test. Je suis alé voir l'aide de delphi la dessus mais je ne vois pas vrément son utilité

mardi 6 mars 2007 à 12:38:23 | Re : Déplacement souris + image

cirec

Membre Club Administrateur CodeS-SourceS
Salut,

personnellement j'utiliserais OnMouseEnter et OnMouseLeave qui, me semble, sont bien plus appropriés et du coup plus besoin de Timer ni de PtInRect

Et pour ton problème de taille il faut aussi penser à mettre la propriété Stretch du TImage à True pour voir les changements de taille

 
@+
Cirec


mardi 6 mars 2007 à 12:39:25 | Re : Déplacement souris + image

sylvunix

Réponse acceptée !
Si l'image ne s'agrandit pas, il manque certainement la propriété Strech à True pour Image1.

En tenant compte de la remarque de Loda que je salue au passage, le code devient :

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
  // Agrandissement de l'image
  Image1.Height := 482;
  Image1.Width := 706;

  // Armer le timer
  Timer1.Enabled := True;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  // Regarder si la souris est en dehors de l'image
  if not PtInRect(Image1.BoundsRect, Mouse.CursorPos) then
  begin
    // Réduction de l'image (remettre la taille initiale)
    Image1.Height := 48;
    Image1.Width := 70;

    // Désarmer le timer
    Timer1.Enabled := False;
  end;
end;


mardi 6 mars 2007 à 12:39:30 | Re : Déplacement souris + image

rt15

Membre Club
Réponse acceptée !
Le code de Loda permet de savoir si la souris est au dessus de l'image ou pas.

AU moins une faute de frappe d'ailleurs, c'est : if not PtInRect(image1.boundsrect, Mouse.cursorpos) then

Ca remplace :

  if (Mouse.CursorPos.X-Form1.Left < Image1.Left) or
     (Mouse.CursorPos.X-Form1.Left > Image1.Left+Image1.Width) or
     (Mouse.CursorPos.Y-Form1.Top < Image1.Top) or
     (Mouse.CursorPos.Y-Form1.Top > Image1.Top+Image1.Height) then

Pour ton image qui change pas de dimensions... C'est peut être une propriété de ton composant qui force la taille de celui-ci à la taille de l'image.

mardi 6 mars 2007 à 12:44:06 | Re : Déplacement souris + image

sylvunix

Bonjour Cirec,

En ce qui concerne la propriété Stretch, nos messages se sont croisés !

Par contre les évènements OnMouseEnter et OnMouseLeave ne sont pas codés dans TImage (sauf erreur de ma part) et je ne vois pas sur quels composants tu peux les accrocher.

mardi 6 mars 2007 à 13:01:05 | Re : Déplacement souris + image

cirec

Membre Club Administrateur CodeS-SourceS
Tout dépend de la version de Delphi

je viens de le faire sous Turbo Delphi:

//Propriétés à changer
//Image1.AutoSize:= False;
//Image1.Stretch := True;


procedure TForm1.Image1MouseEnter(Sender: TObject);
Var aRect : TRect;
begin
  aRect := Image1.BoundsRect;
  InflateRect(aRect , 3, 3);
  Image1.BoundsRect := aRect;
end;

procedure TForm1.Image1MouseLeave(Sender: TObject);
Var aRect : TRect;
begin
  aRect := Image1.BoundsRect;
  InflateRect(aRect , -3, -3);
  Image1.BoundsRect := aRect;
end;

sinon elle s'ajoutent très facilement

 
@+
Cirec



1 2

Cette discussion est classé dans : déplacement, image, souris, dessus


Répondre à ce message

Sujets en rapport avec ce message

Détecter souris hors d'un Timage [ par JackTheRipp3r ] Salut @ tous !Voilà, je suis en train de créer une application dont le design est totalement modifié, et là j'en suis aux boutons agrandissement quitt Image surlove [ par Youyou0214 ] Salut tout le monde,Je voudrais savoir comment sur le passage de la souris on peut change d'image et de remettre l'ancienne image des que la souris n' Bouger une image sur une form en cliquant dessus et en bougeant la souris [ par Yil2201 ] 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 OnMouseLeave et TImage [ par txo ] Bonjours,Je suis en train d'essayer de faire un bouton avec un composant TImage, le but étant de changer l'image lorsque la souris est sur cette image Sacré Mikey, c jamais ou il est! :: Prob localisation souris [ par Gysmo ] Salut a tous!Voila j'ai creer sur mon prog des bontons avec des TImage superposé. Kan on click ca change d'image, une image bouton normal, une image b Image au-dessus d'un TRadioGroup [ par coinki ] Bonjour à tous,Ma Form représente un formulaire dans lequel j'ai un TRadioGroup et des TGroupBox.Dans chacun de ces éléments, je veux superposé une im déplacement d'une image dans un objet Timage [ par ninaleo ] Bonsoir tout le monde    J'ai un petit problème pour lequel je ne trouve pas  de solution évidente et j'aimerais vous le soumettre.    J'ai un objet T Déplacement souris jeux [ par Billou ] Bonjour,je suis entrain de faire un programme permettant de visé "automatiquement" dans un jeu comme quake 3.Voila cependant, j'ai un problème pour fa Utiliser un TopenPictureDialog [ par cincap ] Bonjour,Je cale sur une application qui charge des images au format Bmp en créant une liste avec un Tcombobox, avant de pouvoir appliquer un effet, se Evénement onMouseMove [ par ThWilliam ] Bonjour à tous.L'événement onMouseMove n'est pas appelé à chaque changement de position souris.J'ai fait un petit test avec un panel de 400 pixels de


Nos sponsors

Sondage...

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,28 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.