Page 1 sur 1

[Résolu] Tester une valeur dans une combinaison de constante

Publié : ven. 22/mars/2019 15:49
par falsam

Code : Tout sélectionner

key = #PB_Key_LeftControl | #PB_Key_C
Comment savoir si #PB_Key_LeftControl fait partie de la combinaison de constantes ?

Il me semble que j'ai su le faire avec une seule ligne de code mais incapable de m'en souvenir.

Merci de votre aide

Re: Tester une valeur dans une combinaison de constante

Publié : ven. 22/mars/2019 17:56
par Ar-S
#PB_Key_LeftControl fait partie des commandes claviers de PB donc en "Combinaison de constante ?"
Je ne comprends pas trop ta question j'avoue.

Re: Tester une valeur dans une combinaison de constante

Publié : ven. 22/mars/2019 18:47
par zaphod_b

Code : Tout sélectionner

key = #PB_Key_LeftControl | #PB_Key_C

debug bool((key&#pb_key_c)=#pb_key_c)

donne 1 si #pb_key_c est dans key et 0 pour autre valeur.

Re: Tester une valeur dans une combinaison de constante

Publié : ven. 22/mars/2019 19:29
par Ollivier
Même algo que Zaphod, mais pour la bonne cible :

Code : Tout sélectionner

key = #PB_Key_LeftControl | #PB_Key_C

X = Bool((Key & #PB_Key_LeftControl) = #PB_Key_LeftControl)
Donne 1 si présence
Donne 0 si absence.

Algos moins souple :

Code : Tout sélectionner

Y = (Key & #PB_Key_LeftControl) - #PB_Key_LeftControl
Donne 0 si présence
Donne différent de 0 si absence

Algos encore moins souple :
Si #PB_Key_LeftControl ne fait qu'un bit ou bien
si aucun bit de #PB_Key_LeftControl n'est utilisé par une autre constante :

Code : Tout sélectionner

Z = (Key ! #PB_Key_LeftControl) - Key
Donne 0 si absence
Donne différent de 0 si présence

Re: Tester une valeur dans une combinaison de constante

Publié : ven. 22/mars/2019 20:45
par falsam
Merci à vous deux. C'est ce que je voulais comme résultat ;)

Sujet résolu