LABEL LINK TRÉS SIMPLE, SANS OCX NI RIEN

cs_moustachu Messages postés 1079 Date d'inscription jeudi 14 novembre 2002 Statut Membre Dernière intervention 1 janvier 2012 - 21 févr. 2005 à 09:36
hobbydax Messages postés 2 Date d'inscription jeudi 29 mai 2003 Statut Membre Dernière intervention 23 novembre 2007 - 23 nov. 2007 à 14:13
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/29670-label-link-tres-simple-sans-ocx-ni-rien

hobbydax Messages postés 2 Date d'inscription jeudi 29 mai 2003 Statut Membre Dernière intervention 23 novembre 2007
23 nov. 2007 à 14:13
Cela ne fonctionne pas pour les liens du type "http://www.iso.org/iso/fr/catalogue_detail?csnumber=23632"
Il me renvoit l'erreur "could not find path 23632".
FENETRES Messages postés 196 Date d'inscription jeudi 15 juillet 2004 Statut Membre Dernière intervention 14 avril 2009
28 févr. 2005 à 18:18
Adresse de l'exemple utilisant un contrôle personnalisé :http://www.vbfrance.com/code.aspx?id=26671
FENETRES Messages postés 196 Date d'inscription jeudi 15 juillet 2004 Statut Membre Dernière intervention 14 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és 1079 Date d'inscription jeudi 14 novembre 2002 Statut Membre Dernière intervention 1 janvier 2012
22 févr. 2005 à 12:08
Je veux pas me faire de la puc mais c'est comme ça que je procède...
http://www.vbfrance.com/code.aspx?id=28210
MadM@tt Messages postés 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
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és 796 Date d'inscription jeudi 17 mai 2001 Statut Membre Dernière intervention 5 mai 2009 7
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és 2167 Date d'inscription mardi 11 novembre 2003 Statut Membre Dernière intervention 16 juillet 2009 1
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és 796 Date d'inscription jeudi 17 mai 2001 Statut Membre Dernière intervention 5 mai 2009 7
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és 921 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 23 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és 98 Date d'inscription dimanche 20 juillet 2003 Statut Membre Dernière intervention 31 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 ;)

Merci !
Utilisateur anonyme
21 févr. 2005 à 11:22
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és 1079 Date d'inscription jeudi 14 novembre 2002 Statut Membre Derniè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.

++
Moustachu
Rejoignez-nous