La valeur de BPosition peut etre utilisee pour choisir entre deux images representant les etats ON et OFF de la maniere suivante :
X> BUtton 3,180,38,50,10,0,0,1 [UNpack BPosition 13+;] alterne entre les images 13 et 14 selon la valeur de BPosition [] aucune routine de changement requise ici
La meme technique peut etre utilisee pour creer des boutons ayant plusieurs positions. Il suffit de definir les bons parametres de configuration, minimum et maximum dans la commande BUtton, puis de tester BPosition dans la routine de dessin. Voici un exemple tout pret utilisant ce systeme :
LD> Load "AMOSPro_Tutorials:Tutorial/Interface/Button_Types.AMOS"
BReturn
Instruction Interface : change la valeur d un bouton
BR nouvelle_valeur;
Cette instruction s utilise uniquement dans la routine de changement (les deuxiemes crochets []). BReturn modifie la valeur de BPosition du bouton et relance la routine de dessin pour actualiser l affichage.
Cela permet par exemple de remettre un bouton dans son etat initial apres le relachement du clic. Si on ne l utilise pas, le bouton reste sur sa nouvelle valeur. Exemple :
X> BUtton 1,160,100,64,16,0,0,1;[routine dessin...][BReturn 0;]
BChange
Instruction Interface : modifie la valeur d un autre bouton
BC numero,nouvelle_valeur;
Autre possibilite : faire un groupe de boutons de type radio. Un seul bouton peut etre actif a la fois. Quand l un d eux est clique, les autres sont automatiquement desactives.
La commande BChange permet de modifier la valeur de n importe quel bouton actif sur l ecran, en donnant son numero et la valeur souhaitee.
Pour appliquer cette action a plusieurs boutons en meme temps, on peut leur attribuer le meme numero. Notez que BChange n affecte jamais le bouton courant, meme si son numero est indique. Pour changer le bouton courant, utilisez BReturn.
Voici un exemple complet avec tous les types de boutons :
LD> Load "AMOSPro_Tutorials:Tutorial/Interface/Working Buttons.AMOS"