bonjour,
j'essaye actuellement de créer des boutons pour mon programme, on vérifie tout le temps si le bouton est cliqué et c'est le cas le bouton renvoie un chiffre associé a l'action qu'il doit exécuter ( plusieurs bouton peuvent avoir la même action)
pour certaine action j'ai besoin de récupérer un pointeur sur le bouton cliqué.
voici la fonction qui traite la chose:
voici comment est initialisé selectedObject:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 int checkCliquedUp(int x, int y,Object *selectedObject){ int action=-1; for(std::list<Object*>::iterator iter = list.begin(); iter != list.end(); iter++ ){ if((*iter)->isCliquedUp(x,y)){ selectedObject=(*iter); action=(*iter)->getAction(); } } return action; }
et l'appel a la fonction:
Code : Sélectionner tout - Visualiser dans une fenêtre à part Object* selectedObject=NULL;
le problème est que quand je clique sur un bouton sensé faire une action avec selectedObject l'action s'execute mais il semble que selectedObject soit toujours a NULL.
Code : Sélectionner tout - Visualiser dans une fenêtre à part action=checkCliquedUp(event.motion.x,event.motion.y,selectedObject);
donc selectedObject=(*iter); ne serait pas exécuter correctement alors que action=(*iter)->getAction(); marche très bien.
je galère a trouver le problème... j'ai peut être oublier quelque chose? mal initialiser une variable? mauvais arguments? si vous voyer une erreur merci de me la signaler...
Partager