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 :

Comment Eviter les Duplications dans la ComboBox ?


Sujet :

C++Builder

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 162
    Points : 62
    Points
    62
    Par défaut Comment Eviter les Duplications dans la ComboBox ?
    Salut tout le monde !
    Je suis nouveau ici , et j'ai besoin de votre aide
    Donc mon souci est le suivant :

    A l'aide d'un "Edit" et d'un "bouton Ajouter" j' ajoute ma chaine de caractère
    dans ma ComboBox, cependant je voudrais faire en sorte que la chaine rentrer dans l"Edit " puis ajoutée à ma ComboBox, ne soit pas infiniment ajoutée comme ci-dessous :



  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 162
    Points : 62
    Points
    62
    Par défaut
    j'ai réussi a trouver la réponse tout seul ^^
    trouvé ici ==>http://chgi.developpez.com/tips1/#tips11

    void __fastcall TForm1::SpeedButton1Click(TObject *Sender) //Mon bouton ajouter
    {

    int i;
    AnsiString chaine= Edit1->Text;
    AnsiString chaine2= ComboBox1->Items->Strings[i];
    for ( int x=0 ; x<ControlCount ; x++)
    {
    if ((AnsiString)Controls[x]->ClassName() == "TEdit" )
    {
    ((TEdit*)Controls[x])->Text = "";
    }
    }
    if(chaine==(""))//controle si la chaine n'est pa vide
    {
    }
    else
    {
    ComboBox1->Items->Add(chaine);
    }

    }
    voila Mon code:p

  3. #3
    Membre confirmé
    Homme Profil pro
    Consultant technique
    Inscrit en
    Juillet 2002
    Messages
    519
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 519
    Points : 523
    Points
    523
    Par défaut
    Tu peux faire une boucle pour vérifier si ta chaine n'est pas déja présente dans le combobox.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    bool Present = false;
    for (int i = 0; i < ComboBox1->Items->Count; i++)
        {
        if (ComboBox1->Items->Strings[I] == Edit1->Text)
           {
           Present = true;
           break;
           }
        }
    if (!Present)
       {
       ComboBox1->Items->Add(Edit1->Text);
       }

  4. #4
    Membre chevronné

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

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 374
    Points : 1 759
    Points
    1 759
    Par défaut
    Salut !

    Personnellement, j'aurais tendance à limiter le nombre d'objets ainsi que les actions !
    Si on part du principe que l'on entre une chaîne dans la combobox et que l'on valide l'entrée avec la touche return :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    void __fastcall TForm1::ComboBox1KeyPress(TObject *Sender, char &Key)
    {
    if(Key == VK_RETURN)
        {
        // le texte saisi dans la combobox
        AnsiString N = ComboBox1->Text;
        // puis on teste
        if( (N != "") && (ComboBox1->Items->IndexOf(N) == -1) )
            {
            //Donc on l'ajoute
            ComboBox1->Items->Add(N);
            // pour faire écho de la prise en compte 
            ComboBox1->DroppedDown = true;
            }
        // comme Key a été exploité ... on lui affecte le caractère NUL
        Key = 0;
        }
    }
    J'utilse une version ancienne de BCB donc... c'est à tester !

    A plus !

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 162
    Points : 62
    Points
    62
    Par défaut
    Merci de vos réponse, du coup le test sera plus efficace!

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

Discussions similaires

  1. Comment éviter les doublons dans une ComboBox
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 27/07/2017, 16h03
  2. Listing -> BDD - Comment eviter les duplicates key
    Par JavaMan77 dans le forum JPA
    Réponses: 0
    Dernier message: 11/05/2011, 23h06
  3. Réponses: 7
    Dernier message: 08/01/2007, 19h18
  4. Comment eviter les doubons dans une requête?
    Par jyms2006 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 08/03/2006, 14h08
  5. [vbexcel]Comment supprimer les doublons dans une combobox?
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 24/11/2005, 11h12

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