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 :

TComboBox SelectItem inaccessible ?


Sujet :

C++Builder

  1. #1
    Membre éclairé
    Profil pro
    lkjlgj
    Inscrit en
    Février 2007
    Messages
    255
    Détails du profil
    Informations personnelles :
    Localisation : Angola

    Informations professionnelles :
    Activité : lkjlgj

    Informations forums :
    Inscription : Février 2007
    Messages : 255
    Par défaut TComboBox SelectItem inaccessible ?
    Bonjour !

    Soit une liste déroulante de type TComboBox.
    J'essaie de sélectionner un item de cette liste par programme
    avec la fonction "SelectItem(const AnItem: string): Boolean;"

    Dans mon cas ça donne : MaListe-> SelectItem("coucou");
    où "coucou" est un item qui existe bel et bien dans ma liste.

    Pourquoi est-ce que cette fonction provoque une erreur parce que le compilateur me dit qu'elle est "innaccessible" ???

  2. #2
    Expert confirmé

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par défaut
    Salut,
    tout simplement parce que cette fonction n'existe pas sur le TComboBox

  3. #3
    Membre éclairé
    Profil pro
    lkjlgj
    Inscrit en
    Février 2007
    Messages
    255
    Détails du profil
    Informations personnelles :
    Localisation : Angola

    Informations professionnelles :
    Activité : lkjlgj

    Informations forums :
    Inscription : Février 2007
    Messages : 255
    Par défaut
    OK, donc elle est spécifique à TCustomComboBox...
    C'est curieux que cette méthode apparaisse parmi celles
    déclarées de TComboBox dans le fichier d'aide de DStudio 2006
    même s'il est spécificié qu'elle est (protected).

    Alors, je reviens à ma question : quelle alternative sur TComboBox ?

  4. #4
    Expert confirmé

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par défaut
    Voici une alternative qui devrait fonctionner :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int index = MaListe->Items->IndexOfName("coucou");
    MaListe->ItemIndex = index;

  5. #5
    Membre éclairé
    Profil pro
    lkjlgj
    Inscrit en
    Février 2007
    Messages
    255
    Détails du profil
    Informations personnelles :
    Localisation : Angola

    Informations professionnelles :
    Activité : lkjlgj

    Informations forums :
    Inscription : Février 2007
    Messages : 255
    Par défaut
    Merci M. Pottiez !

    J'ai essayé "Items->IndexOfName" et ça renvoie toujours -1 !!!

    Autre remarque : IndexOfName ne figure pas dans l'aide en ligne (sauf erreur
    de ma part) mais apparaît bel et bien dans mon "debug + evaluate" que j'emploie
    pour lire le contenu de ma liste pendant l'éxécution. Même là, je teste avec toutes les valeurs présentes dans ma liste et il renvoie -1 systèmatiquement.

    Alors, j'ai essayé de parcourir les CTXListClefs->Items->Strings[] et là
    j'arrive à retrouver l'item recherché.

    Merci
    A+

  6. #6
    Membre éprouvé
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Par défaut
    Bonsoir,

    ne suffirait pas dans ce cas ? J'ai l'impression que "IndexOfName(...)" correspond a un autre type de chaine ?

    @+

  7. #7
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Salut devroot
    Un petit bout de programme qui permet de passer le texte selectionne dans un ComboBox vers un Edit
    le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    void __fastcall TForm1::ComboBox1Click(TObject *Sender)
    {
    int ind = ComboBox1->ItemIndex;
    Edit1->Text = ComboBox1->Items->Strings[ind];
    }

  8. #8
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    AnsiString Chaine;
    // pour supprimer les espaces à gauche et à droite
    Chaine = Chaine.Trim();
    //Equivalent à SelectItem, si on devait l'implémenter
    ComboBox1->ItemIndex = ComboBox1->Items->IndexOf(Chaine);
    Notons que pour IndexOf, la comparaison des chaines est stricte au sens où même les espaces sont pris en compte !
    Donc il faut toujours rester vigilant !
    Et ça concerne aussi les items :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ComboBox1->Items->Add(UneChaine.Trim());
    A plus !

Discussions similaires

  1. Lecteur Cd-Rom inaccessible
    Par TheRussian dans le forum Matériel
    Réponses: 7
    Dernier message: 26/08/2004, 20h18
  2. MySQL inaccessible
    Par ripat dans le forum Réseau
    Réponses: 5
    Dernier message: 12/08/2004, 16h18
  3. [Installation] Administration inaccessible FB
    Par Sdyman dans le forum Installation
    Réponses: 7
    Dernier message: 04/07/2004, 21h43
  4. [TComboBox] Contenu trop long pour la zone d'affichage
    Par bebeours dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/09/2003, 16h21
  5. [simple] Récupérer sélection d'un TComboBox
    Par Claythest dans le forum Composants VCL
    Réponses: 5
    Dernier message: 10/06/2003, 17h30

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