Salut à tous,
Quelqu'un peut-il me montrer comment poser cette condition :si le pointeur de la souris passe sur une contrôle alors.... c'est à dire :
if pointeur souris then.
Je veux faire un code dans le OnMouseMove d'un Label.
Merci d'avance.
Salut à tous,
Quelqu'un peut-il me montrer comment poser cette condition :si le pointeur de la souris passe sur une contrôle alors.... c'est à dire :
if pointeur souris then.
Je veux faire un code dans le OnMouseMove d'un Label.
Merci d'avance.
Je ne vois pas trop ton souci, puisque tu as déjà la solution...
Tu mets ton code dans le OnMouseMove.
Se produit quand l'utilisateur déplace le pointeur de la souris au-dessus d'un contrôle.
Salut,
Le forum était en maintenance donc je n'ai pas pu envoyer mon post. A présent je vous explique : je connait qu'il y' a l'évènement OnMouseMove. mais voilà ce que je veux concrètement :
J'ai une label et dans son OnMouseMove j'ai écrit ceci :
Si le pointeur de la souris passe sur le label le code ci-dessus s'exécute. Maintenant si la souris n'est plus dessus que l'effet contraire se produise comme
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 procedure TForm3.Label2MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin Label2.Font.Color := ClBlue; Label2.Font.Style :=[FsUnderline]; end;
Comme fonctionne les liens web. C'est pour cela que je vaut faire une condition. Je pense que vous m'avez un peu compris?.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Label2.Font.Color := ClLMaroon; Label2.Font.Style :=[FsUnderline]; //Plus de soulignement par exemple
Merci pour ce votre soutien...
J'utilise Delphi et j'ai pas OnMouseLeave. Je le trouve nul part dans l'aide. Est-ce pour une version de Delphi supérieur à la mienne?.
je l'ai sous delphi 7
Ok, c'est bien dommage pour moi alors...
Tu peux toujours dériver un nouveau composant et y ajouter la gestion de ces deux messages:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 procedure CMMouseEnter(var Msg: TMessage); message CM_MouseEnter; procedure CMMouseLeave(var Msg: TMessage); message CM_MouseLeave;
salut
c'est assez facile a mettre en place
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 TLABEL = Class(StdCtrls.TLABEL) private FOnMouseEnter :TNotifyEvent; FOnMouseLeave :TNotifyEvent; protected procedure WndProc(var Message : TMessage); override; ... published property OnMouseEnter:TNotifyEvent read FOnMouseEnter write FOnMouseEnter; property OnMouseLeave:TNotifyEvent read FOnMouseLeave write FOnMouseLeave; end; procedure TLABEL.WndProc(var Message : TMessage); begin case Message.Msg of // La souris 'entre' sur le composant CM_MOUSEENTER : if assigned(FOnMouseEnter) then FOnMouseEnter(self); // La souris 'sort' du composant CM_MOUSELEAVE : if assigned(FOnMouseLeave) then FOnMouseLeave(self); end; inherited; // Continuer à faire passer le message end;
@+ Phil
Salut,
J'ai quelques problèmes à l'application de ton code. surtout cette ligne :
ou faut-il la mettre?. Si je le met après private j'ai des erreurs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 protected procedure WndProc(var Message : TMessage); override;
salut
quel genre d'erreur ?
@+ Phil
Ceci[Erreur] Menu_Gle.pas(200): Déclaration forward ou external non satisfaite : 'TForm3.WndProc'
salut
tu n'as pas bien lu mon source c'est le composant que je modifie pas la form
@+ Phil
Franchement je ne m'ensors pas toujours.
Après la déclaration
a la fin j'ai fais
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 type TForm3 = class(TForm) ........
Peut-être que ce n'est pas le bon endroits?...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 type TLABEL = Class(StdCtrls.TLABEL) private FOnMouseEnter :TNotifyEvent; FOnMouseLeave :TNotifyEvent; protected procedure WndProc(var Message : TMessage); override; published property OnMouseEnter:TNotifyEvent read FOnMouseEnter write FOnMouseEnter; property OnMouseLeave:TNotifyEvent read FOnMouseLeave write FOnMouseLeave; end;
salut
met le de cet manière si tu ne veut pas creer un nouveau composant
@+ Phil
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 type TLABEL = Class(StdCtrls.TLABEL) private FOnMouseEnter :TNotifyEvent; FOnMouseLeave :TNotifyEvent; protected procedure WndProc(var Message : TMessage); override; published property OnMouseEnter:TNotifyEvent read FOnMouseEnter write FOnMouseEnter; property OnMouseLeave:TNotifyEvent read FOnMouseLeave write FOnMouseLeave; end; TForm3 = class(TForm) ........ implementation procedure TLABEL.WndProc(var Message : TMessage); begin case Message.Msg of // La souris 'entre' sur le composant CM_MOUSEENTER : if assigned(FOnMouseEnter) then FOnMouseEnter(self); // La souris 'sort' du composant CM_MOUSELEAVE : if assigned(FOnMouseLeave) then FOnMouseLeave(self); end; inherited; // Continuer à faire passer le message end; ...
OK, c'est bon il n' ya plus erreur. Voilà ce que j'ai fais :
Je constate que le FOnMouseEnter ne s'exécuta pas pour la couleur et le soulignement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 procedure TForm3.Label2MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin if assigned(FOnMouseEnter) then begin Label2.Font.Color := ClBlue; Label2.Font.Style :=[FsUnderline]; end Else begin Label2.Font.Color := ClMaroon; Label2.Font.Style :=[]; end; end;
salut
bon on reprend je t'ai fait creer des propriete dans un Tlabel
c'est pour s'en servir voici on possibilite d'utilisation
Premièrement tu créer des methodes dans ta forme
deuxièmement tu assigne les methodes à ton ou tes label dans le formcreate
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 TForm3 = class(TForm) ... Procedure DoLabelMouseEnter(Sender : TObject); Procedure DoLabelMouseLeave(Sender : TObject); ... end;
enfin tu defini dans les methode de ta form ce que tu veut faire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Constructor TForm3.FormCreate; begin Label2.OnMouseEnter := DoLabelMouseEnter; Label2.OnMouseLeave := DoLabelMouseLeave; ... Label4.OnMouseEnter := DoLabelMouseEnter; Label4.OnMouseLeave := DoLabelMouseLeave; end;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Procedure TForm3.DoLabelMouseEnter(Sender : TObject); begin (Sender as TLabel).Font.Color := ClBlue; (Sender as TLabel).Font.Style :=[FsUnderline]; end; Procedure TForm3.DoLabelMouseLeave(Sender : TObject); begin (Sender as TLabel).Font.Color := ClMaroon; (Sender as TLabel).Font.Style :=[]; end;
@+ Phil
Salut,
Si je fais un ajout des ses 2 lignes dans la classe Tform3 il y'a une erreur :[Erreur] Menu_Gle.pas(106): Déclaration forward ou external non satisfaite : 'TForm3.DoLabelMouseEnter'
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 TForm3 = class(TForm) Procedure DoLabelMouseEnter(Sender : TObject); Procedure DoLabelMouseLeave(Sender : TObject); end;
salut
il faut lire la reponse dans son entier
le compilateur dit qu'il ne trouve pas l'implémentation des ligne déclaré
il se trouve que je t'ai fourni cet déclaration
regarde bien tu doit avoir un truc du genre
@+ Phil
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Procedure TForm3.do...
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager