IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

nom composant en variable


Sujet :

C++

  1. #1
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2009
    Messages : 114
    Par défaut nom composant en variable
    Bonsoir ,

    Je suis sur une application avec plus de 50 boutons

    le nom des boutons commencent par Button1 , Button2 , Button3 etc.....

    Je souhaiterai remplacer le chiffre par une variable : ButtonX->caption
    X étant l'indice du bouton .

    Est ce jouable et comment ????

    Le but étant d'optimiser la code ..

    Merci beaucoup pour vos infos

  2. #2
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Par défaut
    Un tableau (vector en anglais)?
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  3. #3
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2009
    Messages : 114
    Par défaut
    Citation Envoyé par Davidbrcz Voir le message
    Un tableau (vector en anglais)?
    je connais les vecteurs mais pour appeler directement des contrôles ????

    dsl mais je ne voit pas comment ???

    merci

  4. #4
    Rédacteur

    Avatar de Davidbrcz
    Homme Profil pro
    Ing Supaéro - Doctorant ONERA
    Inscrit en
    Juin 2006
    Messages
    2 307
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ing Supaéro - Doctorant ONERA

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 307
    Par défaut
    Il me semble plus bénéfique pour toi que tu cherches et lises un cours de C++, surtout la partie "tableau" d'autant plus que je t'ai donné le vocabulaire pour effectuer tes recherches. Il ne reste plus qu'à faire chauffer google.
    "Never use brute force in fighting an exponential." (Andrei Alexandrescu)

    Mes articles dont Conseils divers sur le C++
    Une très bonne doc sur le C++ (en) Why linux is better (fr)

  5. #5
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2009
    Messages : 114
    Par défaut
    Citation Envoyé par Davidbrcz Voir le message
    Il me semble plus bénéfique pour toi que tu cherches et lises un cours de C++, surtout la partie "tableau" d'autant plus que je t'ai donné le vocabulaire pour effectuer tes recherches. Il ne reste plus qu'à faire chauffer google.
    je ne vois toujours pas le rapport entre les tableaux et mon problème ....

    Alors on oubli !

  6. #6
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 391
    Par défaut
    Bonsoir.

    David te conseille un tableau pour pouvoir faire un tableau de bouton (ou de pointeur, intelligent au besoin), et faire des choses comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    (mon_tableau[0]).foo();
    //ou
    (mon_tableau[0])->foo();
    C'est ce que tu veux faire il me semble.

  7. #7
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2009
    Messages : 114
    Par défaut
    Citation Envoyé par Flob90 Voir le message
    Bonsoir.

    David te conseille un tableau pour pouvoir faire un tableau de bouton (ou de pointeur, intelligent au besoin), et faire des choses comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    (mon_tableau[0]).foo();
    //ou
    (mon_tableau[0])->foo();
    C'est ce que tu veux faire il me semble.
    Mon QI vient de descendre -10 sous terre .....dsl....

    Je voudrais écrire ça : Button( int X)->Caption="test" ;

  8. #8
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2009
    Messages : 114
    Par défaut
    Citation Envoyé par parabole33 Voir le message
    Mon QI vient de descendre -10 sous terre .....dsl....

    Je voudrais écrire ça : Button( int X)->Caption="test" ;
    J'ai fait ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    vector<string> control ;
    control.push_back("StringGrid2");
     
    controle[0]->Caption="test" ;
    Et ça forcément ça ne fonctionne pas
    normal .....

    Alors je déleste le topic .....

    Dommage car cela aurait pu servir à d'autre ......

  9. #9
    Membre Expert
    Avatar de Goten
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 580
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 580
    Par défaut
    Y'a pas de méthode Caption sur une string hein... C'est un vector de boutton qu'il faut faire.

  10. #10
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2009
    Messages : 114
    Par défaut
    Citation Envoyé par Goten Voir le message
    Y'a pas de méthode Caption sur une string hein... C'est un vector de boutton qu'il faut faire.
    un exemple pour mon problème ? Afin de je clôture définitivement ce topic dans la douleur ....

  11. #11
    Membre Expert
    Avatar de Goten
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 580
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 580
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    std::vector<button> buttons;
    button b0, bn;
    buttons.push_back(b0);
    //..
    buttons.push_back(bn);
     
     
    buttons[i]->onClick();

    pseudo code toussa toussa.

    Si c'est pas ça, alors tu nous donnes trop peu d'information pour qu'on puisse t'aider.

  12. #12
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2009
    Messages : 114
    Par défaut
    Citation Envoyé par Goten Voir le message
    std::vector<button> buttons;
    button b0, bn;
    buttons.push_back(b0);
    ..
    buttons.push_back(bn);


    buttons[i]->onClick();


    pseudo code toussa toussa.

    Si c'est pas ça, alors tu nous donnes trop peu d'information pour qu'on puisse t'aider.
    C'est exactement ce que je cherchais

    Je n'ai trouvé nul part que les contrôles comme les boutons pouvaient être des types comme int et autres ...

    Encore merci beaucoup pour ton coup de main


    Le savoir ne vaut que si il est partagé par tous dans le respect de chacun ....

  13. #13
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2009
    Messages : 114
    Par défaut
    Citation Envoyé par parabole33 Voir le message
    C exactement ce que je cherchais

    Je n'es trouvé nul part que les contrôles comme les boutons pouvaient être des types comme int et autres ...

    Encore merci beaucoup pour ton coup de main


    Le savoir ne vaut que si il est partagé par tous dans le respect de chacun ....
    J'ai cette erreur (Borland 2010) sur la ligne : TButton b0;

    [BCC32 Erreur] IP2Check_V2.CPP(117): E2459 Les classes de style VCL doivent être construites en utilisant l'opérateur new

    Tous les boutons sont déja crées ...

  14. #14
    Membre Expert
    Avatar de Joel F
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2002
    Messages : 918
    Par défaut
    Fait un vector de Button* et remplis via new

  15. #15
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2009
    Messages : 114
    Par défaut
    Citation Envoyé par Joel F Voir le message
    Fait un vector de Button* et remplis via new
    dsl

  16. #16
    Membre Expert

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2004
    Messages
    1 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 391
    Par défaut
    Bonjour.

    Je pense que tu devrais reprendre un cours (tuto), sur le langage en général avant de te lancer dans l'utilisation d'une bibliothèque de GuI, savoir que Button est un type (enfin une classe et donc définie un type), et savoir ce qu'est l'allocation dynamique ne serait pas de trop.

    David t'avais donné la réponse a ta question dès le départ, Goten et moi-même n'avons fait qu'expliciter ce qu'il a dit, et pour ta dernière erreur, le compilateur t'invite explicitement à utilisé l'allocation dynamique et Joel t'a donné la facon dont il fallait adapter la méthode pour que ca marche.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    std::vector<Button*> v;
    Button* b = new Button();
    v.push_back(b);
    v[0]->action();

  17. #17
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2009
    Messages : 114
    Par défaut
    Citation Envoyé par Flob90 Voir le message
    Bonjour.

    Je pense que tu devrais reprendre un cours (tuto), sur le langage en général avant de te lancer dans l'utilisation d'une bibliothèque de GuI, savoir que Button est un type (enfin une classe et donc définie un type), et savoir ce qu'est l'allocation dynamique ne serait pas de trop.

    David t'avais donné la réponse a ta question dès le départ, Goten et moi-même n'avons fait qu'expliciter ce qu'il a dit, et pour ta dernière erreur, le compilateur t'invite explicitement à utilisé l'allocation dynamique et Joel t'a donné la facon dont il fallait adapter la méthode pour que ca marche.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    std::vector<Button*> v;
    Button* b = new Button();
    v.push_back(b);
    v[0]->action();
    Je lis des tutos depuis des mois et des mois . Tout digérer , assimiler et ré-utiliser pour moi va me prendre plusieurs années !!!! Je ne serais peut être plus là avant .....

    Alors , passer à la pratique permet concrétiser les notions de bases et de faire des aller retour entre tuto et réalité ..

    merci quand même ...

  18. #18
    Membre Expert
    Avatar de Joel F
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Septembre 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2002
    Messages : 918
    Par défaut
    on te demande pas de lire mais de comprendre. Le savoir n'est pas un amoncellement de tuto mais de la compréhension.

    De mon temps, on passer a un concept seulement si le concept antérieur était assimilé ...

  19. #19
    Membre confirmé
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2009
    Messages
    114
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2009
    Messages : 114
    Par défaut
    Citation Envoyé par Joel F Voir le message
    on te demande pas de lire mais de comprendre. Le savoir n'est pas un amoncellement de tuto mais de la compréhension.

    De mon temps, on passer a un concept seulement si le concept antérieur était assimilé ...
    J'ai fait ca et cela fonctionne .... C'est le principal


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    vector<TButton*> bouton;
     
    les boutons sont déjà crées par Borland ( designer ) dans mon projet --->> TButton* b = new TButton();
    Donc à ne pas faire .....
     
     
    bouton.push_back(button1);
    bouton[0]->Caption="test";
    That's ALL ....

  20. #20
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 476
    Par défaut
    Citation Envoyé par Davidbrcz Voir le message
    Un tableau (vector en anglais)?
    Attention : « vector » ne veut pas dire « tableau ». Ça veut dire « vecteur ». Les « tableaux » en C et C++ sont la traduction la plus approchée du mot « array ». Lui-même ne signifiant pas directement « tableau » mais plutôt « batterie » dans sa première acceptation (comme une batterie de casseroles). Comme on utilise ce terme en anglais pour faire des arrangements d'objets en mathématiques ( http://nrich.maths.org/2466 ), c'est le terme le plus approprié qui convienne dans ce cas précis, et donc pour faire des tableaux de nombres.

    Le terme « vector » en C++ vient d'abord du fait que les tableaux à la mode C existent en C++ et qu'il faut faire le distingo. Ensuite, en programmation, un « vecteur », c'est surtout vu comme un n-uplet, donc un ensemble de valeurs du même type. Mais déjà, cet ensemble est censé être de taille fixe, sinon les vecteurs ne sont pas de même nature (sauf sous-espace) et leur « taille » n'est donc pas censée évoluer au cours du temps (en ajoutant, supprimant, voire — pire — insérant des éléments).

    Ensuite, les vecteurs n'en sont qu'à partir du moment où ils appartiennent à un espace vectoriel digne de ce nom, ce qui implique qu'on doit pouvoir les additionner entre eux et les multiplier par un scalaire. Deux choses qui, à ma connaissance, sont impossibles à faire directement sur une classe vector<> de la STL.

    Donc, ces dénominations sont officielles et c'est quand même ainsi qu'il faut nommer les objets, mais elles n'en restent pas moins abusives de mon point de vue…

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Module dont le nom est une variable
    Par Mr Hyde dans le forum Général Python
    Réponses: 11
    Dernier message: 26/02/2023, 20h39
  2. Nom de table variable ?
    Par szdavid dans le forum Oracle
    Réponses: 2
    Dernier message: 10/08/2005, 10h56
  3. [Reflection] Connaître le nom d'une variable ...
    Par dahwoud dans le forum API standards et tierces
    Réponses: 7
    Dernier message: 09/08/2005, 14h37
  4. [try except keyerror] récupérer le nom de la variable
    Par jean-jacques varvenne dans le forum Général Python
    Réponses: 2
    Dernier message: 03/03/2005, 16h59
  5. Nom de champ variable dans une requête SQL
    Par stip dans le forum ASP
    Réponses: 2
    Dernier message: 30/09/2004, 18h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo