getRadioValeur()
Retourne la valeur du bouton radio sélectionné
Exemples d'utilisation
groupe = getRadioValeur(); // groupe prend la valeur du bouton sélectionné groupe = getRadioValeur(GROUPE_0); // Identique. Si on n'a qu'un seul groupe if (getRadioValeur()== 0); // Si c'est le bouton "0" qui est sélectionné...
Référence
char getRadioValeur(char groupe = 0);
Paramètre passé
groupe: numéro du groupe
Valeur retournée
Valeur du bouton si il y en a un sélectionné, 0x80 sinon
Voir aussi
- getRadioPointeur() retourne l'adresse du contrôle actif
- RadioZone; Bouton radio (un seul bouton actif parmi plusieurs) sans dessin
- RadioCoche; Bouton radio (un seul bouton actif parmi plusieurs) case à cocher
- RadioCircle; Bouton radio (un seul bouton actif parmi plusieurs) rond
Notes
Un bouton radio est instancié:
RadioXXXX bouton(x1, y1, x2, y2, valeur, groupe);
Chaque bouton peut recevoir une "valeur". Si cela ne sert à rien, on donne 0 comme valeur. Si par contre c'est utile,
on peut donner à chaque bouton une valeur numérique entière (voir les limites en dessous) différente pour chaque
bouton. Quand on en a besoin, getRadioValeur() va nous donner la valeur de celui qui est sélectionné. Cela permet
aisément de traiter l'information, par exemple par un case ou un if.
On peut avoir plusieurs groupes indépendants. Avec cette bibliothèque, les limitations sont:
- le nombre maximum de boutons dans tous les groupes est le même et c'est une puissance de 2
- le nombre maximum de séries est une puissance de 2
- le produit des deux est 128
Par défaut, on peut avoir 4 groupes de 32 boutons. Ces nombres peuvent se changer, voir GROUPE_0.
On peut attribuer à chaque bouton radio une valeur comprise entre 0 inclus et le nombre maximum de boutons dans le groupe exclu (par défaut ente 0 et 31, tout excès sera tronqué). En général on affecte les boutons par des nobmres croissants 0, 1, 2, 3... mais rien n'empêche de faire autrement. Si on a deux groupes, deux boutons peuvent avoir les mêmes valeurs, on ne peut pas les confondre car l'un peut être vu par exemple par getRadioValeur() et l'autre par getRadioValeur(GROUPE_1).
Exemple
Dans l'exemple qui suit, on utilise la valeur du bouton pour trouver la position du cercle à dessiner
PecheuxGraph_ILI9341_8bits.zip\PecheuxGraph_ILI9341_8bits\examples\Documentation\Exemple-953-getRadioValeur\Exemple-953-getRadioValeur.ino (dans votre fichier téléchargé):
// Mise en place de 3 boutons de type RadioZone (bouton radio, pas de dessin
// dans le bouton). Quand on appuie sur un bouton, un disque blanc montre son
// activité
// - Les boutons ont une définition statique
// - Utilise getRadioValeur pour faire le travail
// - Une seule action pour tous les boutons
#include <PecheuxGraph_ILI9341_8bits.h> // Appel de la bibliothèque
// Déclaration statique des instances, doit se faire en dehors du setup
// Dans ce cas les boutons sont accessibles partout
RadioZone boutonHaut(200, 40, 240, 80, 1); // Bouton en haut
RadioZone boutonCentre(200, 100, 240, 140, 2); // Bouton au centre
RadioZone boutonBas(200, 160, 240, 200, 3); // Bouton en bas
// Déclaration de la fonction qui redessinent les boutons
// Cette fonction ne doivent pas avoir de paramètres et ne doit rien retourner
// Le nom peut être quelconque
void action(void)
{
fillRect(80, 40, 120, 200, BLACK); // Efface tous les disques
// Pour dessiner le disque, on le place à la même ordonnée que le bouton
fillCircle(100, getRadioValeur() * 60, 20, WHITE);
}
void setup()
{
setGraphMode(PAYSAGE); // Initialisation de la carte
rect(200, 40, 240, 80, GREEN); // Carré du haut
rect(200, 100, 240, 140, GREEN); // Carré au centre de l'écran
rect(200, 160, 240, 200, GREEN); // Carré du bas
text(F("Appuyez sur un carré"));
boutonHaut.onSelectFunction = &action; // Fonction appelée si on active le bouton du haut de l'écran
boutonCentre.onSelectFunction = &action; // Fonction appelée si on active le bouton au milieu de l'écran
boutonBas.onSelectFunction = &action; // Fonction appelée si on active le bouton en bas de l'écran
}
void loop()
{
scanEvent(); // Gestion des boutons et des horloges, le plus souvent seul dans le loop
}
Résultat:

Côté technique
Il ne peut y avoir au maximum un seul bouton radio actif par groupe. Cette focntion, en utilisant directement le pointeur sur l'élément actif, lui demande sa valeur.