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 :

ComboBox utilisant Names et Values


Sujet :

C++Builder

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �clair�
    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
    Par d�faut ComboBox utilisant Names et Values
    Bonjour,

    J'ai essay� d'utiliser les names/values des TStrings * en suivants les instructions de la faq : http://cpp.developpez.com/faq/bcb/?p...glistclevaleur

    Avec le code suivant :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    Form7->ComboBox1->Items->Add(IBQueryDivers->FieldByName("Nom_de_la_societe")->AsString + Form7->ComboBox1->Items->NameValueSeparator + IBQueryDivers->FieldByName("Numero_de_client")->AsString);
    Et cela affiche "soci�t�=1" dans la combobox. Hors, je veux afficher "Soci�t�" et pouvoir rectrouver son ID par le Values.

    Une id�e?

    Merci

  2. #2
    Membre �clair�
    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
    Par d�faut
    J'ai essay� le code suivant :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Form7->ComboBox1->Items->Clear();
    int indextemp = Form7->ComboBox1->Items->Add("");
    Form7->ComboBox1->Items->Values[indextemp] = "0";
    for (int I = 0; I < IBQueryDivers->RecordCount; I++)
        {
        indextemp = Form7->ComboBox1->Items->Add(IBQueryDivers->FieldByName("Nom_de_la_societe")->AsString);
        Form7->ComboBox1->Items->Values[indextemp] = IBQueryDivers->FieldByName("Numero_de_client")->AsString;
        IBQueryDivers->Next();
        }
    Et cela me donne le r�sultat suivant :
    j'ai mis le contenu entre guillemet mais pour bien voir qu'il y a un champs vide. Ils n'apparaissent pas dans le TComboBox.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    ""
    "0=0"
    "société"
    "2=1"

  3. #3
    Membre �m�rite
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Septembre 2005
    Messages
    401
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 52
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 401
    Par d�faut
    Hello,

    La propri�t� Values de TStrings prend un AnsiString en argument.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    for (int I = 0; I < IBQueryDivers->RecordCount; I++)
        {
        AnsiString nomSociete = IBQueryDivers->FieldByName("Nom_de_la_societe")->AsString;
        Form7->ComboBox1->Items->Add(nomSociete);
        Form7->ComboBox1->Items->Values[nomSociete] = IBQueryDivers->FieldByName("Numero_de_client")->AsString;
        IBQueryDivers->Next();
        }
    Sinon sous Builder 2007, il y a ValueFromIndex:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    for (int I = 0; I < IBQueryDivers->RecordCount; I++)
        {
        indextemp = Form7->ComboBox1->Items->Add(IBQueryDivers->FieldByName("Nom_de_la_societe")->AsString);
        Form7->ComboBox1->Items->ValueFromIndex[indextemp] = IBQueryDivers->FieldByName("Numero_de_client")->AsString;
        IBQueryDivers->Next();
        }
    Si le but est de stocker le num�ro de client dans un coin, tu peux utiliser la propri�t� Objets de TStrings...

  4. #4
    Membre �clair�
    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
    Par d�faut
    Merci

    Mais �a ne fonctionne pas. J'ai enlev� l'ajout de la ligne vide pour voir ce que donne la boucle.

    Avec le 1er code que tu proposes :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    "société"
    "société=1
    Et le 2�me :
    Je ne voulais pas utiliser d'objet juste pour stocker un chiffre alors qu'une fonctionne existe d�ja pour �a.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    for (int I = 0; I < IBQueryDivers->RecordCount; I++)
        {
        AnsiString nomSociete = IBQueryDivers->FieldByName("Nom_de_la_societe")->AsString;
        Form7->ComboBox1->Items->Add(nomSociete);
        Form7->ComboBox1->Items->Values[nomSociete] = (AnsiString)IBQueryDivers->FieldByName("Numero_de_client")->AsString;
        IBQueryDivers->Next();
        }
    Jai aussi essay� avec en les modifiant :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    for (int I = 0; I < IBQueryDivers->RecordCount; I++)
        {
        indextemp = Form7->ComboBox1->Items->Add((AnsiString)IBQueryDivers->FieldByName("Nom_de_la_societe")->AsString);
        Form7->ComboBox1->Items->ValueFromIndex[indextemp] = (AnsiString)IBQueryDivers->FieldByName("Numero_de_client")->AsString;
        IBQueryDivers->Next();
        }

  5. #5
    Membre �clair�
    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
    Par d�faut
    Petite pr�cision :
    J'ai fait du pas � pas sur le for et il passe une seule fois dans la boucle. Normal puisqu'il y a une seule soci�t� dans ma bdd de test.

  6. #6
    Membre �m�rite
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Septembre 2005
    Messages
    401
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 52
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 401
    Par d�faut
    ok, mea cupla, je n'avais pas test� le code !

    Pour la 1�re solution, faut virer ->Add():
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    for (int I = 0; I < IBQueryDivers->RecordCount; I++)
        {
        AnsiString nomSociete = IBQueryDivers->FieldByName("Nom_de_la_societe")->AsString;
        Form7->ComboBox1->Items->Values[nomSociete] = (AnsiString)IBQueryDivers->FieldByName("Numero_de_client")->AsString;
        IBQueryDivers->Next();
        }
    Pour la 2�me solution, qui n'apporte pas grand chose, pour que �a marche mieux: (utiliser Values et Names impose d'avoir le s�parateur '=')
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    indextemp = Form7->ComboBox1->Items->Add(nomSociete)->AsString + "=");
    Form7->ComboBox1->Items->ValueFromIndex[indextemp] = numeroClient;
    Sinon, pour les objets, c'est juste une mani�re d�tourn�e de stock� un ID entier:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    stringListe->Objects[i] = (TObject*)IDClient;
    IDClient = (int)stringListe->Objects[i];

  7. #7
    Membre �clair�
    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
    Par d�faut
    La 1�re solution ne fonctionne toujours pas. J'obtiens :
    Pour la 2�me solution, je ne comprend pas la logique puisque indextemp est le num�ro retourn� par la fonction Add et tu veux lui attribuer un AnsiString? Et du coup obtenir exactement la m�me chose que pour la 1�re solution.

    En fait, le ComboBox n'a pas l'air de g�rer le couple Names/Values.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [RegEx] preg_match dans formulaire pour recup�rer les name et value
    Par natsou_k dans le forum Langage
    R�ponses: 6
    Dernier message: 19/04/2010, 20h52
  2. [SBI BIRT] Erreur de transformation quand Birt utilise Allow Multiples values
    Par atee dans le forum SpagoBI
    R�ponses: 1
    Dernier message: 23/04/2009, 17h09
  3. Remplir une comboBox avec name et id
    Par Phenomenium dans le forum Ext JS / Sencha
    R�ponses: 2
    Dernier message: 01/07/2008, 11h12
  4. Utilisation du Row Value Constructor
    Par Antoun dans le forum SQL
    R�ponses: 7
    Dernier message: 31/07/2007, 16h20
  5. [ACCESS] utilisation de Top Value
    Par Arko76 dans le forum Requ�tes et SQL.
    R�ponses: 3
    Dernier message: 30/03/2007, 19h33

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