Y a t'il un évènement 'sur focus souris' sur access?

debilzpsy4 Messages postés 7 Date d'inscription mardi 10 août 2004 Statut Membre Dernière intervention 14 août 2004 - 14 août 2004 à 17:11
debilzpsy4 Messages postés 7 Date d'inscription mardi 10 août 2004 Statut Membre Dernière intervention 14 août 2004 - 14 août 2004 à 23:28
Salut^^
J'aimerais sous access2000 avoir des menus "like internet" qui se mettent en surbrillance lorsque le focus de la souris est dessus et qui reviennent à l'état normal lorsque le controle perd le focus de la souris. Le seul évênement que j'ai trouvé approprié est le 'sur souris déplacée (onMouseMove)'. Cependant il n'est guère pratique! en l'absence d'évenement de 'perte de souris focus' je suis obligé d'entourer mon controle par un autre invisible, qui, lorsqu'il reçoit la souris déplacée, annule la surbrillance du précédent (il joue le role de la perte de focus, en qq sorte). C'est trés pénible (l'écran clignote, ça alourdi le code,...). Devant le nombre d'évenement que propose access je suis étonné que celui ci, trés important n'existe pas. Est ce que je me trompe? y a il une méthode plus simple?
@++

3 réponses

ld40 Messages postés 336 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 22 février 2019 1
14 août 2004 à 19:39
bonjour,

si tu crées 2 objets Étiquette1 et Étiquette2 dans ton formulaire,
voici un exemple de code que tu peux essayer
(Étiquette2 ) est ton bouton surbrillance sur mouse move,
alors que étiquette1 n'est là que pour faire le témoin visuel de l'exemple.

Private Sub Étiquette2_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Étiquette1.Caption = "Touché"
Étiquette2.ForeColor = &HFF0000
If X > 50 And X < Étiquette2.Width - 50 Then
    If Y > 50 And Y < Étiquette2.Height - 50 Then
        Étiquette1.Caption = "Coulé"
        Étiquette2.ForeColor = &HFF00FF
    End If
End If
End Sub

0
debilzpsy4 Messages postés 7 Date d'inscription mardi 10 août 2004 Statut Membre Dernière intervention 14 août 2004
14 août 2004 à 23:00
Merci id40 pour ton code,
je ne connaissais pas (je débute) ces parametres pris lors de l'évenement (x, y, pour l'instant je ne comprends pas encore s'il s'agit de valeurs relatives cumulées durant l'évenement). J'ai essayé avec d'autres valeurs que les '50' et ça donne de mauvais résultats. Ta réponse va bcp m'aider, et je v tenter de l'adapter le mieux possible à mon cas
bye :o)
0
debilzpsy4 Messages postés 7 Date d'inscription mardi 10 août 2004 Statut Membre Dernière intervention 14 août 2004
14 août 2004 à 23:28
... J'ai constaté qq erreurs lorsque la souris se déplace trop vite, la surbrillance n'a pas le temps d'être désactivée (ce qui était le cas aussi avec ma 1ere méthode). Lorsqu'un controle a le focus, on doit donc effacer toute 'surbrillance' des autres, pour réparer les erreurs... cela produit un sacré clignotement d'écran.
Je vais essayer de créer une fonction public qui conservera la trace du dernier controle à avoir eu le focus et ne redessinera que ce dernier pour limiter les dégats du display. Je sais bien que cela n'est pas vraiment approprié à ce qu'offre facilement access, mais c'est toute mon interface graphique qui dépend de ce sujet. Je ne me satisfais plus de ces gros boutons gris dans ma base de données! :=) !
à+++
0
Rejoignez-nous