Aller au contenu

Identification du bouton appelant dans un VD


MAM78

Messages recommandés

Je m'explique, dans un VD j'ai plusieurs boutons.

  • Bouton 1
  • Bouton 2
  • Bouton Update

 

Lorsque je clic sur le bouton 1 le code contenu dans ce bouton fait un clic le bouton Update.

Lorsque je clic sur le bouton 2 le code contenu dans ce bouton fait un clic le bouton Update.

 

Dans le code du bouton Update je souhaite identifier quel est le bouton (1 ou 2) qui a générer l'exécution du bouton Update.

 

Auriez-vous une idée (sans passer par des variables globales et des labels) ?

Lien vers le commentaire
Partager sur d’autres sites

ou alors utiliser un contact libre sur un de tes module  pour avoir le retour d'etat du bouton sur ta VD comme sa tu active réellement un contact qui te donne un retour d'état 

 

Donc tu clic sur bouton 1etat egale uptade

Lien vers le commentaire
Partager sur d’autres sites

L’idée n’est pas d’avoir un retour d’etat mais d’identifier le bouton sur lequel l’utilisateur a cliqué dans un VD sachant que je peux avoir plusieurs instances de ce VD. Je souhaite que le VD soit autonome et non dépendant d’autres VD ou devices


Envoyé de mon iPhone en utilisant Tapatalk Pro

Lien vers le commentaire
Partager sur d’autres sites

Je pense avoir trouvé la solution à ma demande.

 

Est-ce que selon vous, il est possible d'écrire ("Call Button = 3") dans le debug du VD une trace ("Source Button = 3") correspondant au bouton appelant.

 

Puis dans le bouton appellé analyser le débug (les dernieres traces) pour recherche  ("Source Button =") et prendre la valeure correspondante. En l'occurence "3".

 

Est-ce que l'écriture dans le debug est suffisement rapide et fiable selon vous.

 

Je pense que cela pourrait être utilisé également pour partager (entre les bouton et main loop) le contenu de variables au sein d'un même VD.

 

Je pense que cela ouvre quelques perspectives et pourrais simplifier certains codes et limiter l'usage de variables globales. Vous en pensez quoi ?

Lien vers le commentaire
Partager sur d’autres sites

Oui mais tu t'exposes à un bug si tu as 2 boutons qui appellent (et donc écrivent un debug) en un temps trop rapproché.

 

C'est pareil que via une variable globale cela-dit.

 

J'avais exploré cette piste que j'ai abandonné pour me retrancher sur l'appel de scène avec passage d'argument, seul moyen d'obtenir une fiabilité de 100% (en fait c'est identique à un appel de fonction). Bon toi ça ne te conviendra pas car tu veux tout conserver dans le VD....

Lien vers le commentaire
Partager sur d’autres sites

Si un bouton A met un message dans le debug d'un autre bouton B puis clique dessus, dans ce cas le bouton B va commencer par lire son propre debug et trouver le message provenant du bouton appelant (le A)

 

Si au même moment, un 3ème bouton C met également un message dans le debug du bouton B puis clique dessus, tu n'es pas certain que le bouton B va dépiler le bon message dans le debug.... celui de A, ou celui de C.

 

A la limite, tu dois pouvoir contourner le problème en faisant une routine dans B, qui va traiter tous les messages dans sa propre zone de debug. Ainsi quelque soit l'ordre des messages, tu traites tous les événements provenant des autres boutons.

Le souci après c'est de gérer cela correctement afin de ne pas traiter plusieurs fois des messages qui ont déjà été traités.
 

Bref, je ne suis peut être pas clair, mais perso je ne vois pas trop comment tu veux gérer les choses.... ou alors je passe à coté d'un truc hyper simple ?

Lien vers le commentaire
Partager sur d’autres sites

×
×
  • Créer...