Bonjour à tous, j’espère que le confinement se passe bien pour vous. J’aurais besoin d’aide à propos d’un de problèmes logiques que je rencontre entre les classes d’objets et les fonctions.
Pour me présenter vite fait , je suis un amateur aguerris depuis 4 ans sur arduino. J’ai tout appris en me débrouillant par moi-même, expérimentant, apprenant par des tutos et forum. J’ai récemment plonger dans l’univers de la POO. C’est génial mais là je coince depuis plusieurs jours… Votre aide me fera le plus grand bien
Je serais court et efficace:
*Ps:J’ai volontairement simplifier mon code pour que vous voyez le coeur de mon problème. Je précise que c’est pour faire apparaitre des boutons sur un écran TFT 3,5". *
Problème N°1:
Comment instancier un objet dans une fonction et le réutiliser en dehors de la fonction ?
#include <ButtonPerso.h> // Class que j'ai fais moi
void fonctionInstancedObjet(){ // Création de la fonction
ButtonPerso Bouton1 ;} // Ou j'instancie un objet
void setup() {
fonctionInstancedObjet(); // Je fais appel à la fonction qui instancie donc l'objet
Bouton1.display(); // Je veut me servir de l'objet instancié, mais ça me dit:
error: 'Bouton1' was not declared in this scope
}
Si j’appelles des méthodes de Bouton1 dans la fonction, là oui ça marche. Mais comment en dehors ? Par pointeurs j’imagine…
Problème N°2:
Comment instancier des objets dans une boucle ?
J’ai trouvé cette technique qui me permet de choisir le nombre d’objet que je crées et ainsi les paramétrer d’une différente manière chacun.
byte nbdeBOUTON = 10; // Je veux 10 bouton
ButtonPerso PleinDeBouton[nbdeBOUTON] ; // J'instancie automatique un tableau de 10 boutons
for (byte i= 0 ; i < nbdeBOUTON ; i ++){ // Boucle for avec l'appel d'une methode pour tout les
bouton[1] 2,3,4 etc...
PleinDeBouton[i].display();
}
Mais j’aimerais pouvoir nommer mon tableaux lui-même dans une boucle du genre:
byte nbdeBOUTON = 10; // Je veux 10 bouton
for (byte i= 0 ; i < nbdeBOUTON ; i ++){ // Je crée une boucle qui vas instancier 10 objets ButtonPerso nommé différemment.
String Nom = "Bouton"+'i' ; // Je sais c'est pas comme ça qu'il faut faire mais c'est l'idée. :D
ButtonPerso Nom ; // J'instancie l'objet Nom qui est égal à Bouton1, Bouton2 etc...
Nom.display();
}
Bouton5.faisCeci() // L'idée serais que je puisse me servir de mes boutons comme ça aussi :D
L’idée de tout ça est de créer des fonctions qui mettront des boutons rectangulaires en colonne. J’y arrive déjà très bien un à un, avec des fonctions qui check si le stylet appuie sur le bouton. Je peux faire appaitre des colonnes de rectangle, mais je ne peux par utiliser les objets instanciés pour faire des fonctions qui check tout les boutons rectangulaires sur l’écran. En somme des objectifs que tous créateur de GUI rencontre… hihihi.
Voilà mes 2 plus gros problèmes Je vous remercie 32767 fois par avance. M’excuse aussi si fautes orthographes. Et espère que votre aide servira aussi à d’autres qui passeront par là :).