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: