Passage du curseur sur une image [Résolu]

cs_bilboss77 11 Messages postés mercredi 18 octobre 2006Date d'inscription 3 décembre 2007 Dernière intervention - 16 sept. 2007 à 01:47 - Dernière réponse : cs_bilboss77 11 Messages postés mercredi 18 octobre 2006Date d'inscription 3 décembre 2007 Dernière intervention
- 17 sept. 2007 à 21:39
Bonjour a tous,
Je trouve assez joli l'effet que font certains boutons quand on passe le curseur dessus j'aimerais faire de meme sous delphi avec un "Timage"
apres avoir inserer un composant "Timagelist" j'ai trouvé sur ce forum de quoi changer l'image du "Timage" le code ressemble a ceci:

image1.picture.bitmap:=nil;
Imagelist1.getbitmap(0,image1.picture.bitmap);

cela fonctionne tres bien quand je passe le curseur sur l'image elle change mais maintenant je voudrais que une fois que le curseur n'est plus sur l'image, elle redevienne comme avant le passage du curseur.

cela peut vous parraitre simple seulement je suis debutant en delphi.
merci pour vos reponses.
ps: j'ai delphi7
Afficher la suite 

10 réponses

Répondre au sujet
cincap 490 Messages postés dimanche 5 décembre 2004Date d'inscription 6 avril 2009 Dernière intervention - 16 sept. 2007 à 10:33
+3
Utile
Bonjour à toutes et à tous,

@ Bilboss77, pour bien comprendre, au départ ton Timage, contient déjà une image ou tu la charges aussi de ton Timagelist ?

Sinon, tu peux utiliser un timer réglé sur 1500 ou ton choix :



procedure TFmove.ImagetestMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
 begin


timertest.Enabled := true;


imagetest.picture.bitmap:=nil;
ImageMenu.GetBitmap(3,Imagetest.Picture.Bitmap);



end;



procedure TFmove.TimertestTimer(Sender: TObject);
begin
 imagetest.picture.bitmap:=nil;
ImageMenu.GetBitmap(1,Imagetest.Picture.Bitmap);
 timertest.Enabled := false;
end;

@+,

Cincap

[url]mailto:/url
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cincap
Utilisateur anonyme - 16 sept. 2007 à 14:06
+3
Utile
Salut Monsieur BillBoss

Ton bouton il flotte pas dans les airs ? . Pourquoi ne pas appliquer la meme procédure, que pour le bouton, dans ta form.

procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
imagetest.picture.bitmap:=nil;
ImageMenu.GetBitmap(2,Imagetest.Picture.Bitmap);
end;

procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
imagetest.picture.bitmap:=nil;

ImageMenu.GetBitmap(1,Imagetest.Picture.Bitmap);
end;
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Utilisateur anonyme
cincap 490 Messages postés dimanche 5 décembre 2004Date d'inscription 6 avril 2009 Dernière intervention - 16 sept. 2007 à 14:07
+3
Utile
Tu peux alors te passer du timer et utiliser pour le changement de l'image, la propriété "MouseMove" de ta fiche.

procedure TFmove.ImagetestMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
 begin

imagetest.picture.bitmap:=nil;
ImageMenu.GetBitmap(3,Imagetest.Picture.Bitmap);

end;

procedure TFmove.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
begin
imagetest.picture.bitmap:=nil;
ImageMenu.GetBitmap(1,Imagetest.Picture.Bitmap);
end;

Quel est ton code pour le chargement depuis le Timagelist ?

@+,

Cincap

[url]mailto:/url
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de cincap
cs_bilboss77 11 Messages postés mercredi 18 octobre 2006Date d'inscription 3 décembre 2007 Dernière intervention - 16 sept. 2007 à 13:40
0
Utile
Bonjour,
merci pour ta reponse Cincap cela fonctionne seulement il y a encore un petit souci
en effet si le surseur reste sur l'"image" celle ci redeviens comme avant le passage du curseur (position 1).

sinon pour ta question je charge depuis la "imagelist" l'image a placer dans l'"Image" au lancement de l'application.
A+
Commenter la réponse de cs_bilboss77
cs_bilboss77 11 Messages postés mercredi 18 octobre 2006Date d'inscription 3 décembre 2007 Dernière intervention - 16 sept. 2007 à 15:19
0
Utile
Re bonjour,
cette solutions fonctionne tres bien, merci pour votre aide.
@Cincap: que veut tu dire par code de changement depuis le Timagelist ?

A+
Commenter la réponse de cs_bilboss77
cincap 490 Messages postés dimanche 5 décembre 2004Date d'inscription 6 avril 2009 Dernière intervention - 16 sept. 2007 à 18:52
0
Utile
Je voulai simplement connaître ta façon de réaliser le chargement depuis la "Timagelist" de l'image a placer dans le TImage au lancement de l'application.


Mon dernier message a semble t'il croisé celui de Francky23012301.

Ce qui compte c'est que tu as obtenu une réponse.

@+,

Cincap

[url]mailto:/url
Commenter la réponse de cincap
cs_bilboss77 11 Messages postés mercredi 18 octobre 2006Date d'inscription 3 décembre 2007 Dernière intervention - 16 sept. 2007 à 19:49
0
Utile
Re bonjour,
@cincap voici le code que j'ai utilisé:
procedure TForm1.FormCreate(Sender: TObject);
begin
image1.picture.bitmap:=nil;
Imagelist1.GetBitmap(3,Image1.Picture.Bitmap);
end;

cela evite que l'application prenne quelques Ko en plus si je chargais dirrectement l'image dans la "Timage"

mais sinon vous sembliez etre daccord sur la methode à utiliser et cela marche tres bien, merci encore.
à bientot.
Commenter la réponse de cs_bilboss77
JulioDelphi 2354 Messages postés dimanche 5 octobre 2003Date d'inscription 18 novembre 2010 Dernière intervention - 17 sept. 2007 à 01:00
0
Utile
ou alors utiliser mon composant "TdbpMouser" qui permet d'ajouter les events "OnMouseEnter" et "OnMouseExit" ;)
Commenter la réponse de JulioDelphi
cincap 490 Messages postés dimanche 5 décembre 2004Date d'inscription 6 avril 2009 Dernière intervention - 17 sept. 2007 à 07:10
0
Utile
Bonjour à toutes et à tous,

@ Bilboss77, avec ta méthode, tu affiches ton image lorsque ton pointeur est sur la fiche, ce qui est ennuyeux si ta fiche est à wsnormal, de plus il y a un léger tremblement.

Ceci est mieux, tu crées un fichier *.dat avec toutes tes images :

imagemenu =  ton imageList1
 
procedure TForm1.FormCreate(Sender: TObject);
 var
  imageList : TImageList;
begin
 doublebuffered := true;
 WriteComponentResFile('ImageMenu.dat', ImageMenu) ;
 imageList := TImageList.Create(nil) ;
  try
  ReadComponentResFile('ImageMenu.dat', imageList) ;
 imageList.GetBitmap(3,Image1.Picture.Bitmap) ;


  finally
    FreeAndNil(imageList) ;
  end;
end;

@ JulioDelphi, bravo pour ce composant.

@ +,

Cincap

[url]mailto:/url
Commenter la réponse de cincap
cs_bilboss77 11 Messages postés mercredi 18 octobre 2006Date d'inscription 3 décembre 2007 Dernière intervention - 17 sept. 2007 à 21:39
0
Utile
JulioDelphi j'ai testé ton composant, Super! c'est exactemment ce qu'il me fallait merci beaucoup.
et merci aussi à Cincap pour ton aide.

A bientot.
Commenter la réponse de cs_bilboss77

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.