wxDev.fr, le portail francophone consacré à wxWidgets ! ( The french portal for wxWidgets )  
Esp. membre
Recheche rapide



Recherche avancée
Statistiques
Membres inscrits :2359

Membres en ligne : 0
Invités en ligne : 1

Valid XHTML 1.0 Transitional

Valid CSS2

Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Développement C/C++
» Identifiants réservés???
Conversation (Résolue) : Identifiants réservés???
03-09-2008 12:15:39  Identifiants réservés??? #1
guyothomas (Membre)
Inscrit le : 05-06-2008
Messages: 66
Snippets: 0
Tutoriels: 0
Hors ligne
Bonjour à la communauté!
J'aimerais savoir si certaines valeurs sont réservées pour les identifiants, que ce soit en C, en C++, avec wxWidgets, sous Visual studio, ou même ailleurs...
car quand j'écris ça au début de mon fichier:

Code Cpp:

const int ID_KEYBOARD_F1    =    1;

le compilo ne me crache pas dessus mais la fonction (événemetielle) qui est liée à cet ID n'est pas éxecutée, alors qu'avec ça:

Code Cpp:

const int ID_KEYBOARD_F1    =    13;        ////    1 ne lui convient pas!!!! ????

elle l'est.

Merci d'avance,

Tom.
03-09-2008 12:48:13  Re: Identifiants réservés??? #2
Gandi (Gourou de la secte)
Lieu: Clermont-Ferrand
Inscrit le : 10-10-2007
Messages: 216
Snippets: 5
Tutoriels: 0
Site web
Hors ligne
Je soupçonne que 1 est déjà réservé pour un autre event.
Avec wxWidget tu devrais définir tes ID de cette manière, ça évitera des conflits avec les ID par défauts de wxWidget ).

Code wxWidgets:

const int ID_KEYBOARD_F1    =    wxNewId() ;

Dernière modification par Gandi (03-09-2008 14:10:00)


"Les ordinateurs ne remplaceront jamais les livres. Vous ne pouvez pas vous mettre sur une pile de disquettes pour atteindre le haut de votre armoire" ( Sam Ewing )
03-09-2008 14:29:28  Re: Identifiants réservés??? #3
guyothomas (Membre)
Inscrit le : 05-06-2008
Messages: 66
Snippets: 0
Tutoriels: 0
Hors ligne
Salut Gandi,
c'est une très bonne idée, merci, mais il y a un hic.
le wxNewId() démarre à 100, et j'avais déjà un wxBitmapButton avec un ID égal à 100. Il est vrai que je pourrais lui dire aussi de prendre un wxNewId() à la place. Ce serait d'ailleurs plus cohérent pour l'ensemble de mon programme.
Je dis bien que je "pourrais" car je passe aussi certains ID des contrôles des sous-fenêtres à la fenêtre principale avec une ligne style

Code Cpp:

extern int ID_D_UN_BOUTON  =  3315;

afin de pouvoir traiter le msg avec la fenêtre de plus haut niveau et agir sur toutes les sous fenêtre. C'est d'ailleurs le cas pour mon bouton dont l'ID vaut 100.
Avec la méthode des wxNewId(), je ne pourrai plus faire cela, et je pense que

Code Cpp:

extern int ID_D_UN_BOUTON  =  wxNewId();

posera problème. Après un test rapide avec ce bouton, le message n'est pas transmis correctement.

Pour résumer, à moins que je ne trouve une solution pour mes références externes, je vais devoir me passer de mettre un ID égal à 1, ce qui n'est pas la mort en soit!
right? et encore merci!
03-09-2008 14:40:03  Re: Identifiants réservés??? #4
Gandi (Gourou de la secte)
Lieu: Clermont-Ferrand
Inscrit le : 10-10-2007
Messages: 216
Snippets: 5
Tutoriels: 0
Site web
Hors ligne
Rien ne t'empêche de créer un manager de type singleton qui enregistre toutes les frames pour centraliser leurs messages, tu pourrais aussi remonter l'information par les parents, ou encore stocker l'id ou le pointeur de la frame principale pour la retrouver. Tu peux aussi passer par wxApp.

Dernière modification par Gandi (03-09-2008 14:43:35)


"Les ordinateurs ne remplaceront jamais les livres. Vous ne pouvez pas vous mettre sur une pile de disquettes pour atteindre le haut de votre armoire" ( Sam Ewing )
03-09-2008 14:56:18  Re: Identifiants réservés??? #5
guyothomas (Membre)
Inscrit le : 05-06-2008
Messages: 66
Snippets: 0
Tutoriels: 0
Hors ligne
ouhahou!!! tu me forces à me documenter sur les singletons dont je n'avais pas du tout supposé l'existence jusqu'à présent.
http://tfc.duke.free.fr/coding/singleton.html explique le pourquoi et le comment de ce modèle.
C'est hyper intéressant, ça devient même du haut niveau!
Si je comprends bien, tu me suggères donc de me faire une classe de "type singleton" qui contiendra tous les ID de boutons de mon prog. Ce sera bien plus propre.
Je m'y mets de suite, merci encore et à la prochaine.
Tom.
03-09-2008 15:15:30  Re: Identifiants réservés??? #6
Gandi (Gourou de la secte)
Lieu: Clermont-Ferrand
Inscrit le : 10-10-2007
Messages: 216
Snippets: 5
Tutoriels: 0
Site web
Hors ligne
Je sais pas pourquoi tu veux faire ça mais, si à la suite de la MAJ des données d'un objet tu veux rafraichir les interfaces qui observent un objet (l'observable ), va voir le design pattern observeur/observable.

Tu fais dériver tes Frames de ta classe abstraite Observeur, tu implémentes le refresh. Tu fais dériver tes objets à observer de ta classe abstraite Observalbe
Tu créer un manager qui va stocker dans un tableau associatif ..aux hasard une hashmap la clef serait l'observable (son identifiant, un entier créer avec wxNewID par exemple)  et la donnée serait un vector d'Observeur.
Dès qu'une donnée est mise à jour dans l'observable il appel le manager d'observation qui avec l'id de l'observable va trouver tout ses observeur qui auront besoin d'être mis à jour. Si c'est pas ça que tu veux faire :p bein t'en pis :p.

"Les ordinateurs ne remplaceront jamais les livres. Vous ne pouvez pas vous mettre sur une pile de disquettes pour atteindre le haut de votre armoire" ( Sam Ewing )
03-09-2008 15:20:45  Re: Identifiants réservés??? #7
guyothomas (Membre)
Inscrit le : 05-06-2008
Messages: 66
Snippets: 0
Tutoriels: 0
Hors ligne
n'en jettes plus STP!!!
c'est juste aux init, après les ID ne changent plus dans mon cas
Menu forum (navigation):
Pages: 1  
 
Accueil » Accueil forums » Développement C/C++
» Identifiants réservés???