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++Builder Discussion :

appel d'un objet a partir d'un AnsiString


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de Flow_75
    Femme Profil pro
    Ingénieure
    Inscrit en
    Mai 2005
    Messages
    1 100
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieure
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 100
    Par défaut appel d'un objet a partir d'un AnsiString
    Bonjour,

    voila, j'ai fait une form avec 64 CheckBox (pour les besoin de facilité de débeuggage)

    ils se nomment de A1......A8,B1......B8,C1......C8, etc......
    je voudrais savoir si je fait un AnsiString contenant A1 (par exemple)
    y a une fonction pour la convertir en nom d'objet ?

    par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    AnsiString var = "A1";
    {....}
    var->Checked = false;
    (ou bien var.Checked = false)
    Merci de votre information
    car me taper 64 tests ca va vite me saouler...

  2. #2
    Membre éprouvé

    Profil pro
    Cadre
    Inscrit en
    Mars 2006
    Messages
    132
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Cadre

    Informations forums :
    Inscription : Mars 2006
    Messages : 132
    Par défaut
    Jette un oeil sur cette propriété

    Tu peux parcourir chaque composants de ta fenetre, vérifier son nom, et agir le cas échéant

  3. #3
    Membre Expert
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Par défaut
    Je peux te proposer la solution suivante (peut-être pas la meilleure...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    AnsiString Var = "A1";//nom du controle que tu veux tester
    for (int i = 0;i < ControlCount;i++)//parcours des controles de ta fiche
    {
     if (Controls[i]->ClassNameIs(Var))//je vérifie si le controle trouvé est celui que je désire
     {
      //tes tests
     }
    }
    Voilà...

  4. #4
    Membre éprouvé Avatar de Flow_75
    Femme Profil pro
    Ingénieure
    Inscrit en
    Mai 2005
    Messages
    1 100
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieure
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 100
    Par défaut
    Citation Envoyé par bakaneko
    Je peux te proposer la solution suivante (peut-être pas la meilleure...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    AnsiString Var = "A1";//nom du controle que tu veux tester
    for (int i = 0;i < ControlCount;i++)//parcours des controles de ta fiche
    {
     if (Controls[i]->ClassNameIs(Var))//je vérifie si le controle trouvé est celui que je désire
     {
      //tes tests
     }
    }
    Voilà...
    merci,

    concernant les actions apres un test positif,

    je voudrais par exemple, mettre checked à true.
    mais le probleme, c'est que
    quand j'ai trouvé le controle que je veux,
    je fais :

    Controle[i]->Checked = false;

    mais ca ne marche pas, meme avec un cast ( (TCheckBox) )

  5. #5
    Membre Expert
    Avatar de bakaneko
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 268
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 268
    Par défaut
    Mea Culpa...

    J'ai fait une légère erreur dans mon code. ClassNameIs permet de tester le type de l'objet, pas son nom.

    Le code suivant fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    AnsiString Var = "A1";//nom du controle que tu veux tester
     for (int i = 0;i < ControlCount;i++)//parcours des controles de ta fiche
     {
      if (Controls[i]->Name == Var)//je vérifie si le controle trouvé est celui que je désire
      {
       ((TCheckBox *)Controls[i])->Checked = true;
      }
     }

  6. #6
    Membre éprouvé Avatar de Flow_75
    Femme Profil pro
    Ingénieure
    Inscrit en
    Mai 2005
    Messages
    1 100
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieure
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 100
    Par défaut
    Merci pour votre aide a tous les deux.
    c'est plus rapide maintenant de cocher plein de cases de cette facon ^^.


    Ciao

  7. #7
    Membre Expert
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Par défaut
    A condition que les composants aient le même parent.

  8. #8
    Nouveau candidat au Club
    Inscrit en
    Mars 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Âge : 34

    Informations forums :
    Inscription : Mars 2007
    Messages : 2
    Par défaut
    bonjour,
    j'ai sensiblement le meme probleme mais moi c'est avec des form.
    en fait je voudrais ouvir une form (en appuyant sur un bouton) en fonction de ce qui est sélectionné dans un CombBox.
    Par exemple si Choix1 est selectionné cela ouvre Choix1_frm
    si Choix2 est selectionné cela ouvre Choix2_frm
    etc...
    j'arrive bien a le faire mais je voudrais le faire sans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    if(ComboBox1->Text == "Choix1")
    {
    Choix1_frm->Show();
    }
    if(ComboBox1->Text == "Choix2")
    {
    Choix2_frm->Show();
    }
    Ce code etant assez lourd pour plusieurs choix dans ComboBox.
    Auriez vous une solution? j'ai essayé avec la methode donnée mais ca ne marche pas.
    merci d'avance
    anthony

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 23/10/2013, 12h40
  2. Appel d'un objet remoting à partir d'un web service
    Par Bal1n dans le forum Services Web
    Réponses: 2
    Dernier message: 02/08/2010, 16h54
  3. Appeler une methode d'un Objet C# à partir du Xaml suite à un click
    Par Aquatiques dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 14/06/2008, 14h37
  4. Pb d'appel d'objet a partir d'un autre objet
    Par sebastien2222 dans le forum Langage
    Réponses: 11
    Dernier message: 31/05/2006, 09h49

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