getRadioPointeur()
Retourne un pointeur sur le bouton radio sélectionné
Exemples d'utilisation
if (getRadioPointeur())... // test si un bouton est sélectionné if (getRadioPointeur()) getRadioPointeur()->drawButton(); // Redessine le bouton sélectionné
Référence
RadioZone *getRadioPointeur(char groupe = 0);
Paramètre passé
groupe: numéro du groupe, GROUPE_0 si on ne passe pas de paramètre
Valeur retournée
Pointeur sur bouton radio sélectionné si il y en a un, NULL sinon
Voir aussi
- getRadioValeur() Donne la valeur du contrôle actif du groupe
- unselectRadio() Désélectionne tous les boutons radios d'un groupe
- 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
Grâce à ce pointeur, on peut avoir accès aux donnés du bouton sélectionné. On y accède par le symbole ->
getRadioPointeur()->demiX1;
getRadioPointeur()->controleSuivant;
getRadioPointeur()->drawButton(); ...
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-955-getRadioPointeur\Exemple-955-getRadioPointeur.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 getRadioPointeur pour faire le travail // - Une seule action pour tous les boutons # $menu = ":PG"; 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(30, getRadioPointeur()->demiY1 + getRadioPointeur()->demiY2, 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:
