le 01-15-2013 07:27 AM
Bonjour,
je tente de réaliser un drag & drop sur un X-control mais l'evennenment drag est detecté à l'intérieur du XCTL (sur un des controles du VI facade.vi) et non dans la structure evt qui se trouve dans le VI parent. Y a t'il une manip à faire pour réussir à déclencher l'évennement sur le XCTL global et pas sur chacun des contrôles le composant?
le 01-16-2013 01:51 AM
Bonjour Seb,
Si le drag & drop ne repose que sur un objet du VI Façade, effectivement, c'est un peu fichu, ou tout du moins ça complique les choses. Les 2 seules alternatives à laquelle je pense :
- générer un événement utilisateur, stocké dans une FGV ou une FIFO, et récupéré dans le VI appelant.
- dans l'événement Drag ou Drop de Façade.vi, on peut très bien récupérer la référence du VI appelant (désassembler le cluster "Container" et réaliser un tas d'opérations sur le VI appelant. Cela serait plus simple si les actions à réaliser dans l'événément sont réalisables à partir de cette référence.
Reste que les XControls sont des commandes, on peut faire un drag&drop sur/depuis eux comme n'importe quelle commande, mais dans ce cas on ne distingue pas les différents éléments du VI de Façade.
Cdt
Eric
Eric M. - Senior Software Engineer
Certified LabVIEW Architect - Certified LabVIEW Embedded Systems Developer - Certified LabWindows™/CVI Developer
Neosoft Technologies inc.
le 01-16-2013 02:21 AM
En fait je ne cherche pas a faire un drop sur un element particulier du Xctl mais sur le contrôle dans sa globalité, ce qui dans la logique devrait marcher exactement comme vous le suggerez.
Le problème étant que sur mon PC l'event drag enter ne déclenche pas (symbole sens interdit) sur le Xctl alors qu'il déclenche sur le tableau de chaines que je met à coté. Les deux étant paramétrés sur le même event: Control=>Drag Enter.
Je ne trouve pas de doc qui m'indique s'il s'agit d'un problème de paramétrage de ma machine ou une limitation LabVIEW. Par contre j'ai testé en 2011 et 2012 et j'ai le même comportement.
le 01-16-2013 03:22 AM
le 01-16-2013 06:47 AM
Le drag drop fonctionnel en réutilisant l'exemple XControl ! La destination du drag&drop est la commande numérique "Degrés Celsius".
Cdt
Eric
Eric M. - Senior Software Engineer
Certified LabVIEW Architect - Certified LabVIEW Embedded Systems Developer - Certified LabWindows™/CVI Developer
Neosoft Technologies inc.
le 01-16-2013 09:07 AM
Merci de votre réponse mais je n'ai pas été assez clair dans l'énoncé de mon problème:
je veux draguer depuis le tree jusqu'au Xctl (je drop dans le Xctl). Celà ne marche pas non plus avec le thermomètre (voir PJ)
le 01-16-2013 10:49 AM
Effectivement, à l'envers, le xControl ne reconnaît pas les événements Entrée de Glisser ou Dépôt... Cela doit être dû au fait que le VI de Façade ne permet pas cette action. Dans tous les cas, je viens de remonter gentiment cela à notre R&D pour action correctrice.
Selon ce que vous souhaitez mettre dans le XControl, le meilleur contournement pourrait être une face-avant secondaire.
Cdt
Eric
Eric M. - Senior Software Engineer
Certified LabVIEW Architect - Certified LabVIEW Embedded Systems Developer - Certified LabWindows™/CVI Developer
Neosoft Technologies inc.
01-16-2013 10:54 AM - modifié 01-16-2013 10:56 AM
La FA secondaire sera moyennement adaptée dans mon cas. Nous avons identifié un problème avec 2012 sur l'appel par référence qui lance une recherche de LVinput.dll assez pénible. Je vais donc repartir avec ce que j'utilisais précédement (Typedef avec tous les éléments dans un cluster). C'est moins sympa pour l'encapsulation du code mais pour le moment il semblerait que ce soit le choix qui a le plus de chances de marcher.
J'ai eu la même réponse du support: "J'ai regardé votre code, et effectivement, le drag n'est pas détecté. C'est un CAR que nous avons reporté et qui sera traité par la R&D pour être résolu dans les prochaines versions de LabVIEW. (Je ne sais pas laquelle par contre.)"
waiting for LV2014 alors....
Merci d'avoir cherché.