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:
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;
}
voici comment est initialisé selectedObject:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Object* selectedObject=NULL;
et l'appel a la fonction:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
action=checkCliquedUp(event.motion.x,event.motion.y,selectedObject);
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.
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...