Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1397 connectés 

  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  Comment savoir qd la souris passe sur et quitte un contrôle?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comment savoir qd la souris passe sur et quitte un contrôle?

n°613132
Yoyo@
Posté le 15-01-2004 à 23:40:34  profilanswer
 

Salut!
 
Voilà!
 
Tout est dans le titre.
 
Je cherche à créer un contrôle descendant par exemple de TPanel, et qui réagisse à la souris, quand celle ci passe dessus et quitte également!
 
Sur le net, j'ai trouvé qu'il fallait utiliser les messages Delphi CM_MOUSEENTER et CM_MOUSELEAVE, mais ma version (Delphi 7) ne semble pas les connâitre? Est ce que vous avez une idée?
 
PS : J'ai également essayé les mesages Windows : WM_MOUSEFIRST et WM_MOUSELAST. Le First marche bien, mais aps le Last :(
 

mood
Publicité
Posté le 15-01-2004 à 23:40:34  profilanswer
 

n°613147
bossamiral​2
Ctrl+Alt+Del
Posté le 16-01-2004 à 00:04:12  profilanswer
 

c'est certainement dans la liste des événements de ton TPanel, je te répondrais plus tard je ne suis pas au boulot et je n'ai pas delphi sur mon pc
 
tu veux pas utiliser l'événement onmousemove


Message édité par bossamiral2 le 16-01-2004 à 00:06:52
n°613148
Yoyo@
Posté le 16-01-2004 à 00:07:08  profilanswer
 

D'accord!
 
(PS : Mon controle est en fait un dérivé de TButton, mais ça ne change pas grand chose!)
 
Dans l'inspecteur de propriété, y arien de ce genre!
 
J'attends donc ta réponse (à moins que quelqu'un d'autre puissse aussi répondre)

n°613182
taureau
Posté le 16-01-2004 à 05:32:51  profilanswer
 

je n'ai pas testé (c'est trop tot :d) mais je pense que tu dois faire un truc dans le genre
 

TEnterLeavePanel=class(TPanel)
  Private
    procedure CMMouseEnter(var Message: TMessage); message CM_MOUSEENTER;
   procedure CMMouseLeave(var Message: TMessage); message CM_MOUSELEAVE;
 public
end;
 
implentation
 
procedure TEnterLeavePanel.CMMouseEnter(var Message: TMessage);
begin
 // traitement CM_MOUSEENTER
end;
 
procedure TEnterLeavePanel.CMMouseLeave(var Message: TMessage);
begin
 // traitement CM_MOUSELEAVE
end;

n°613201
Yoyo@
Posté le 16-01-2004 à 09:01:39  profilanswer
 

Taureau a écrit :

je n'ai pas testé (c'est trop tot :d) mais je pense que tu dois faire un truc dans le genre
 

TEnterLeavePanel=class(TPanel)
  Private
    procedure CMMouseEnter(var Message: TMessage); message [g]CM_MOUSEENTER[/g];
   procedure CMMouseLeave(var Message: TMessage); message [g]CM_MOUSELEAVE[/g];
 public
end;
 
implentation
 
procedure TEnterLeavePanel.CMMouseEnter(var Message: TMessage);
begin
 // traitement CM_MOUSEENTER
end;
 
procedure TEnterLeavePanel.CMMouseLeave(var Message: TMessage);
begin
 // traitement CM_MOUSELEAVE
end;




 
 
Oui, mais comme je le dis plus haut...mon Delphi ne reconnaît pas les constantes CM_MOUSEENTER et CM_MOUSELEAVE. (Delphi 7!) Et ils n'apparaissent pas dans l'aide en ligne non plus!
 
C'est bien là tout mon problème...
 
Merci du coup de pouce quand même :)

n°613230
antp
Super Administrateur
Champion des excuses bidons
Posté le 16-01-2004 à 09:41:05  profilanswer
 

C'est défini dans la unit Controls


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°613239
Yoyo@
Posté le 16-01-2004 à 09:51:53  profilanswer
 

Ah oui, exact... Ca marche!
 
Donc, c'était bien ça!
 
Mais alors, ça me fait peur...Car je n'ai trouvé aucune référence à CM_MOUSEENTER dans l'aide en ligne.... Ca vveut dire qu'il fodrait qu'on puisse deviner quels sont les messages qui existent? Comment faire pour connaître les messages qui sont "recevables", etc? leurs noms?

n°613242
antp
Super Administrateur
Champion des excuses bidons
Posté le 16-01-2004 à 09:57:20  profilanswer
 

C'est dans la doc de Microsoft (la MSDN) j'imagine  
http://msdn.microsoft.com


Message édité par antp le 16-01-2004 à 09:57:43

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°613243
Yoyo@
Posté le 16-01-2004 à 10:00:06  profilanswer
 

Non, je ne penses pas : Les messages du type CM (Component Message) et CN (Component Notification) sont des messages "internes" aux TControls de la VCL. (Enfin, bon, je suis newbie, donc, peut etre je dis des betises?)

n°613303
antp
Super Administrateur
Champion des excuses bidons
Posté le 16-01-2004 à 10:59:07  profilanswer
 

ha, c'est possible en effet


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
mood
Publicité
Posté le 16-01-2004 à 10:59:07  profilanswer
 

n°613308
Kyle_Katar​n
Posté le 16-01-2004 à 11:06:08  profilanswer
 

En tout cas je ne connais rien de tel en Win32 pûr....


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Delphi/Pascal

  Comment savoir qd la souris passe sur et quitte un contrôle?

 

Sujets relatifs
Pour un site web : faire changer l'image quand on passe la sourismodifier mot de passe
[PHP] Comment savoir si ma page est appelé par un formulaire ?[ASP.NET] controle utilisateur : créer du js dans la page au rendu?
[WML] Créer un bête mot de passe en wml[C#] Inserer un controle HTML dans une WINDOWS FORM
[ECLIPSE] Copier/coller avec la souris ?Connaitre l'état des boutons de la souris sur l'écran entier
depassement de INT_MAX lors d'un controle de saisie 
Plus de sujets relatifs à : Comment savoir qd la souris passe sur et quitte un contrôle?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR