Passage du curseur sur une image

[Résolu]
Signaler
Messages postés
11
Date d'inscription
mercredi 18 octobre 2006
Statut
Membre
Dernière intervention
3 décembre 2007
-
Messages postés
11
Date d'inscription
mercredi 18 octobre 2006
Statut
Membre
Dernière intervention
3 décembre 2007
-
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

Messages postés
460
Date d'inscription
dimanche 5 décembre 2004
Statut
Membre
Dernière intervention
6 avril 2009
2
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

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;
Messages postés
460
Date d'inscription
dimanche 5 décembre 2004
Statut
Membre
Dernière intervention
6 avril 2009
2
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
Messages postés
11
Date d'inscription
mercredi 18 octobre 2006
Statut
Membre
Dernière intervention
3 décembre 2007

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+
Messages postés
11
Date d'inscription
mercredi 18 octobre 2006
Statut
Membre
Dernière intervention
3 décembre 2007

Re bonjour,
cette solutions fonctionne tres bien, merci pour votre aide.
@Cincap: que veut tu dire par code de changement depuis le Timagelist ?

A+
Messages postés
460
Date d'inscription
dimanche 5 décembre 2004
Statut
Membre
Dernière intervention
6 avril 2009
2
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
Messages postés
11
Date d'inscription
mercredi 18 octobre 2006
Statut
Membre
Dernière intervention
3 décembre 2007

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.
Messages postés
2226
Date d'inscription
dimanche 5 octobre 2003
Statut
Modérateur
Dernière intervention
18 novembre 2010
14
ou alors utiliser mon composant "TdbpMouser" qui permet d'ajouter les events "OnMouseEnter" et "OnMouseExit" ;)
Messages postés
460
Date d'inscription
dimanche 5 décembre 2004
Statut
Membre
Dernière intervention
6 avril 2009
2
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
Messages postés
11
Date d'inscription
mercredi 18 octobre 2006
Statut
Membre
Dernière intervention
3 décembre 2007

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.