Aller au contenu
MAM78

Identification du bouton appelant dans un VD

Recommended Posts

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) ?

Partager ce message


Lien à poster
Partager sur d’autres sites

interessant... sans passer par une VG ???  aucune une idée, mais je suis le sujet...

Modifié par jjacques68

Partager ce message


Lien à poster
Partager sur d’autres sites

même si j'avais une baguette magique, je ne vois pas comment faire ce que tu veux dans VG ou Label

Partager ce message


Lien à poster
Partager sur d’autres sites

C'est bien pour ça que je pose ma question aux magiciens du forum ;)

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Alors là, je ne crois pas qu'il existe dans l'API le moyen de récupérer la source du clic sur le bouton ;-)

Partager ce message


Lien à poster
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

Partager ce message


Lien à poster
Partager sur d’autres sites

C’est quoi un contacte libre ?


Envoyé de mon iPhone en utilisant Tapatalk Pro

Partager ce message


Lien à poster
Partager sur d’autres sites

sur un module il arrive des fois que tu n'utilise qu'un seul contact non ? 

Partager ce message


Lien à poster
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

Partager ce message


Lien à poster
Partager sur d’autres sites

ha ok je n'avais pas compris alors excuse moi ! 

Partager ce message


Lien à poster
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 ?

Partager ce message


Lien à poster
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....

Partager ce message


Lien à poster
Partager sur d’autres sites

Tu peux préciser quel est le délai pour que tu parles. Lors ce que tu évoques un temps trop rapprochée.

 

dans mon contexte je parle au sein d’un même VD

Partager ce message


Lien à poster
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 ?

Partager ce message


Lien à poster
Partager sur d’autres sites

×