Discussions au sujet de NI LabVIEW

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

Drag & Drop sur X-ctl

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?

Sebastien DEVISSCHER - Nerys
0 Compliments
Message 1 sur 8
3 634 Visites

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.

0 Compliments
Message 2 sur 8
3 623 Visites

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.

Sebastien DEVISSCHER - Nerys
0 Compliments
Message 3 sur 8
3 616 Visites

J'ai fait un petit exemple qui explique mon problème. C'est en LV2012

 

 

 

 

Sebastien DEVISSCHER - Nerys
0 Compliments
Message 4 sur 8
3 610 Visites

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.

0 Compliments
Message 5 sur 8
3 599 Visites

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)

 

 

Sebastien DEVISSCHER - Nerys
0 Compliments
Message 6 sur 8
3 592 Visites

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.

0 Compliments
Message 7 sur 8
3 587 Visites

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é.

Sebastien DEVISSCHER - Nerys
0 Compliments
Message 8 sur 8
3 585 Visites