le 01-28-2014 05:46 AM
Bonjour à tous,
Je n'arrive pas à déclencher un event dans un contexte bien précis.
Le contexte :
Un control_String contenant un string.
La manip :
Sur ce string, je fais une sélection
c.a.d ... clic-gauche + déplacement ... mais ... je termine ce déplacement en dehors du Control_String
comme ceci :
J'essaye de déclencher un event sur cet événement particulier.
J'ai essayé :
- "String - Mouse leave" ... mais "Mouse Leave" ne fonctionne pas si je fais "clic-gauche" en même temps .
- Différents "event-drag" ... pas de résultat.
Existerait-il une façon "d'identifier" cet événement ?
Merci.
le 01-28-2014 08:09 AM
Salut ouadji,
De mon côté, LV2011SP1, l'événement Mouse Leave se génère correctement même avec le bouton gauche de la souris.
Si tu souhaite détecter l'événement sortie de la souris avec le bouton gauche appuyé tu peux passer par un VI Callback pour détecter la sortie de la souris et dans ce VI Callback générer un événement utilisateur. Un exemple vite fait pour illustrer 😉
01-28-2014 09:45 AM - modifié 01-28-2014 09:47 AM
Bonjour Benjamin,
Merci d'avoir pris le temps de tester.
et bien au temps pour moi, de mon côté aussi "Mouse Leave" fonctionne même avec le bouton gauche de la souris ON.
Comprends pas (?) ... il m'avait pourtant "semblé que"
J'ai re-testé avec simplement une incrémentation dans l'event ... et effectivement, ça incrémente.
Désolé davoir crié aux loups inutilement.
Quant au Callback ... j'aime beaucoup "l'exemple vite fait" ... woaw
Je l'ai précieusement mis de côté !
Je vois que ce noeud "Callback" provient de la palette ".Net"
Et là, les abysses ... ce ".Net" m'est totalement étranger (bon dieu, mais qu'est-ce ? ... il faudra un jour que je perce cet abcès )
Pourquoi ce noeud "Callback" se trouve-t-il associé à ce ".Net" ?
Comment pourrait-on définir "ce qui est .Net de ce qui ne l'est pas ?
Est-ce une couche supplémentaire ? et pourquoi ce nom de .Net ... que signifie cet acronyme ?
encore Merci Benjamin, précis, limpide, efficace ... comme dab !
le 01-29-2014 02:39 AM
Salut ouadji,
Vaste sujet qu'est le .NET! Je te laisse parcourir Google pour en apprendre un peu plus sur cette technologie Microsoft.
De mon exempe bien que le noeud se trouve dans la palette .NET je n'utilise pas, ici, le .NET. J'utilise le fait de pouvoir donner au noeud la référence vers un contrôle et de retrouver les événements afin que lorsque l'événement arrive LabVIEW appel le VI, dit callback. Bref je fais comme en C.
C'est une autre manière de gérer les événements et NI recommande d'utiliser la structure événement pour gérer les événement de l'UI.
le 01-29-2014 03:10 AM
Le noeud d'enregistrement à une callback n'est pas dédié au .NET (on le trouve aussi dans la palette ActiveX), mais à tout événement que l'on souhaite déclencher pour peu qu'on ait une référence de l'objet sur lequel porte l'événément. Bien pratique quand on veut déclencher un événement dans un VI A un événement produit sur l'UI d'un VI B...
Exemple attaché. Run Source, puis Run Caller. Et cliquer sur les booléens de Source 🙂
Eric M. - Senior Software Engineer
Certified LabVIEW Architect - Certified LabVIEW Embedded Systems Developer - Certified LabWindows™/CVI Developer
Neosoft Technologies inc.
01-29-2014 03:40 AM - modifié 01-29-2014 03:41 AM
Merci Benjamin, Merci Eric
Grand merci Eric pour ton exemple ... je le place précieusement de côté ! (j'ai testé, "ça" tourne)
Le noeud d'enregistrement à une callback n'est pas dédié au .NET (on le trouve aussi dans la palette ActiveX)
.Net ... ActiveX ... Pourquoi ce Noeud ne se trouve-t-il pas tout simplement dans la Palette Application_Control ?
Dans la doc, je vois cette première phrase :
"Un VI Callback contient le code que vous écrivez pour gérer un événement ActiveX ou .NET spécifié."
questions:
Quand on parle "Callback" ... parle-t-on obligatoirement "ActiveX" et/ou ".Net" ?
Corrolaire : La notion de "Callback" peut-elle exister en dehors de tout concept "ActiveX" et/ou ".Net" ?
Eric : Dans ton exemple, as-tu utilisé "quelque chose" faisant partie de ces notions "ActiveX" ou ".Net" ? (si oui ... quoi ?)
Pour moi, un Callback est du code qui s'exécute "après" un autre.
Ceci dit, je sens qu'il serait très intéressant ... "d'aller plus loin"
le 01-29-2014 04:01 AM
Une fonction callback est une fonction appelé par le moteur d'exécution suite à un événement. Cette notion existe en dehors de LabVIEW et n'est pas forcément lié à l'ActiveX ou au .NET.
Dans notre cas LabVIEW appel le VI callback suite à une événement utilisateur sur le FP. C'est le même principe que la structure événement qui exécute le cas pour l'événement lorsque celui-ci arrive.
Dans les palettes LabVIEW ce noeud a été fait pour permettre de gérer les événements ActiveX et .NET mais par "extension" il permet l'accès aux événement "purs" LabVIEW qui n'ont rien à voir avec l'ActiveX ou le .NET.
le 01-29-2014 04:15 AM
super ! très intéressant !
deux phrases importantes à mon sens :
"est une fonction appelé par le moteur d'exécution suite à un événement"
"C'est le même principe que la structure événement qui ..."
là ... reste à vérifier s'il existe une "Pile Callback" ... à mon avis, oui (pourrait-il en être autrement)
j'en sais assez pour "creuser" moi-même.
merci Benjamin.