FENETRES
Messages postés196Date d'inscriptionjeudi 15 juillet 2004StatutMembreDernière intervention14 avril 2009 28 févr. 2005 à 18:14
Effectivement, une autre méthode consiste à simuler un flux parallèle dans un contrôle personnalisé (voir ma dernière source). Cette solution évite d'intercepter un évènement de souris et permet de réutiliser le code source du composant.
cs_moustachu
Messages postés1079Date d'inscriptionjeudi 14 novembre 2002StatutMembreDernière intervention 1 janvier 2012 22 févr. 2005 à 12:08
MadM@tt
Messages postés2167Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention16 juillet 20091 22 févr. 2005 à 11:57
Dit Neo.balastik tu connaitrais une source de ce dont tu parles, j'en ai jamais vu j'aimerais bien voir ce que ça donne.
Neo.balastik
Messages postés796Date d'inscriptionjeudi 17 mai 2001StatutMembreDernière intervention 5 mai 20097 22 févr. 2005 à 09:05
Une solution adéquate pour créer un événement MouseOver et MouseOut est d'utiliser conjointement les
API GetWindowRect, GetCapture, ReleaseCapture et SetCapture et cela sans subclassing ni Timer. Il faudra bien entendu gérer les événements dans le contrôle avec Event et RaiseEvent.
MadM@tt
Messages postés2167Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention16 juillet 20091 21 févr. 2005 à 22:10
D'accord avec tous, c'est beaucoup mieux en controle car en 2 clics tu a ton Label link, alors que la tu te trimballe du code.
Avant j'étais comme toi, beurk les OCX, mais en fait je trouve que c'est le pied du programmeur passke t'a rien à faire et pourtant c'est bien ton code, pas comme une dll que t'utilise et que t'a pas programmé toi meme...
Enfin c'est un avis perso.
Mais après toujours le meme problème dès qu'il faut faire des mouseover et mouseout... Toujours des bugs, le seul moyen de faire un truc qui marche bien c'est en utilisant les coordonées de la souris (sans parler du subclassing trop compliqué juste pour ça), mais coordonées de la souris = plus de calculs...
Neo.balastik
Messages postés796Date d'inscriptionjeudi 17 mai 2001StatutMembreDernière intervention 5 mai 20097 21 févr. 2005 à 16:55
Disons que ce projet et valable pour un ou deux label sur un form, mais pas pour en faire un contrôle générique.
Aussi, l'événement Form_MouseMove du formulaire ne fonctionnera pas si le label et trop prêt d'un autre contrôle.
Saros
Messages postés921Date d'inscriptionvendredi 20 décembre 2002StatutMembreDernière intervention23 septembre 2010 21 févr. 2005 à 15:33
Juste question d'optimisation... Quand ta souris quitte le label, ton programme parcourt tous les labels pour les déssouligner, alors qu'il n'y en a qu'un à faire.
Pour 4 labels ça va encore, mais bon...
Je te conseillerais plutôt d'enregistrer l'index du label survolé par la souris, puis de s'occuper de lui seulement après.
Puis sinon, je préfère les OCX, c'est moins de code dans les modules du projet, et plus simple d'utilisation...
cs_Danyz
Messages postés98Date d'inscriptiondimanche 20 juillet 2003StatutMembreDernière intervention31 octobre 2006 21 févr. 2005 à 11:39
comment ca le nom ?
il est dans le zip ( LabelLink/Curseur/Main.cur )
Sinon je l'ai recuperé dans System32 , y'a plein de fichier qui le contiennent :)
Pour Moustachu , merci de tes remarques constructives.
pour le lien qui reste souligné, il suffit de placer le meme code dans l'evenement MouseUp du label que dans l'evenement MouseMove de la form :
For i = 0 To Label1.Count - 1
Label1(i).FontUnderline = False
Next
Tu as raison pour le controle en fait.
Je vais mettre à jour la source dejà pour qu'il lance l'url et ta remarque ;)
C'est sympa, mais je suis d'accord avec le moustachu ^^.
Je voudrais juste savoir, c'est quoi le nom du cursor avec la main ? :$
cs_moustachu
Messages postés1079Date d'inscriptionjeudi 14 novembre 2002StatutMembreDernière intervention 1 janvier 2012 21 févr. 2005 à 09:36
L'avantage d'un contrôle, c'est que tu peux réutiliser le code. Tu utilises un controle Label + du code perso, pourquoi ne pas utiliser un autre contrôle qui contiendrait ton code ?
Si tu laisses appuyé sur le bouton de la souris et que tu relache le bouton une fois sorti de la feuille, ton lien reste sousligné.
Tu pourrais également compléter en lançant réellement le lien.
23 nov. 2007 à 14:13
Il me renvoit l'erreur "could not find path 23632".
28 févr. 2005 à 18:18
28 févr. 2005 à 18:14
22 févr. 2005 à 12:08
http://www.vbfrance.com/code.aspx?id=28210
22 févr. 2005 à 11:57
22 févr. 2005 à 09:05
API GetWindowRect, GetCapture, ReleaseCapture et SetCapture et cela sans subclassing ni Timer. Il faudra bien entendu gérer les événements dans le contrôle avec Event et RaiseEvent.
21 févr. 2005 à 22:10
Avant j'étais comme toi, beurk les OCX, mais en fait je trouve que c'est le pied du programmeur passke t'a rien à faire et pourtant c'est bien ton code, pas comme une dll que t'utilise et que t'a pas programmé toi meme...
Enfin c'est un avis perso.
Mais après toujours le meme problème dès qu'il faut faire des mouseover et mouseout... Toujours des bugs, le seul moyen de faire un truc qui marche bien c'est en utilisant les coordonées de la souris (sans parler du subclassing trop compliqué juste pour ça), mais coordonées de la souris = plus de calculs...
21 févr. 2005 à 16:55
Aussi, l'événement Form_MouseMove du formulaire ne fonctionnera pas si le label et trop prêt d'un autre contrôle.
21 févr. 2005 à 15:33
Pour 4 labels ça va encore, mais bon...
Je te conseillerais plutôt d'enregistrer l'index du label survolé par la souris, puis de s'occuper de lui seulement après.
Puis sinon, je préfère les OCX, c'est moins de code dans les modules du projet, et plus simple d'utilisation...
21 févr. 2005 à 11:39
il est dans le zip ( LabelLink/Curseur/Main.cur )
Sinon je l'ai recuperé dans System32 , y'a plein de fichier qui le contiennent :)
Pour Moustachu , merci de tes remarques constructives.
pour le lien qui reste souligné, il suffit de placer le meme code dans l'evenement MouseUp du label que dans l'evenement MouseMove de la form :
For i = 0 To Label1.Count - 1
Label1(i).FontUnderline = False
Next
Tu as raison pour le controle en fait.
Je vais mettre à jour la source dejà pour qu'il lance l'url et ta remarque ;)
Merci !
21 févr. 2005 à 11:22
Je voudrais juste savoir, c'est quoi le nom du cursor avec la main ? :$
21 févr. 2005 à 09:36
Si tu laisses appuyé sur le bouton de la souris et que tu relache le bouton une fois sorti de la feuille, ton lien reste sousligné.
Tu pourrais également compléter en lançant réellement le lien.
++
Moustachu