Passage du curseur sur une image

Résolu
cs_bilboss77 Messages postés 11 Date d'inscription mercredi 18 octobre 2006 Statut Membre Dernière intervention 3 décembre 2007 - 16 sept. 2007 à 01:47
cs_bilboss77 Messages postés 11 Date d'inscription mercredi 18 octobre 2006 Statut Membre Dernière intervention 3 décembre 2007 - 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

10 réponses

cincap Messages postés 460 Date d'inscription dimanche 5 décembre 2004 Statut Membre Dernière intervention 6 avril 2009 2
16 sept. 2007 à 10:33
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
3
Utilisateur anonyme
16 sept. 2007 à 14:06
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;
3
cincap Messages postés 460 Date d'inscription dimanche 5 décembre 2004 Statut Membre Dernière intervention 6 avril 2009 2
16 sept. 2007 à 14:07
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
3
cs_bilboss77 Messages postés 11 Date d'inscription mercredi 18 octobre 2006 Statut Membre Dernière intervention 3 décembre 2007
16 sept. 2007 à 13:40
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+
0

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

Posez votre question
cs_bilboss77 Messages postés 11 Date d'inscription mercredi 18 octobre 2006 Statut Membre Dernière intervention 3 décembre 2007
16 sept. 2007 à 15:19
Re bonjour,
cette solutions fonctionne tres bien, merci pour votre aide.
@Cincap: que veut tu dire par code de changement depuis le Timagelist ?

A+
0
cincap Messages postés 460 Date d'inscription dimanche 5 décembre 2004 Statut Membre Dernière intervention 6 avril 2009 2
16 sept. 2007 à 18:52
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
0
cs_bilboss77 Messages postés 11 Date d'inscription mercredi 18 octobre 2006 Statut Membre Dernière intervention 3 décembre 2007
16 sept. 2007 à 19:49
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.
0
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
17 sept. 2007 à 01:00
ou alors utiliser mon composant "TdbpMouser" qui permet d'ajouter les events "OnMouseEnter" et "OnMouseExit" ;)
0
cincap Messages postés 460 Date d'inscription dimanche 5 décembre 2004 Statut Membre Dernière intervention 6 avril 2009 2
17 sept. 2007 à 07:10
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
0
cs_bilboss77 Messages postés 11 Date d'inscription mercredi 18 octobre 2006 Statut Membre Dernière intervention 3 décembre 2007
17 sept. 2007 à 21:39
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.
0
Rejoignez-nous