bonjour
j'utilise une comboBox et je souhaite ajouter du texte dans ma combobox mais lorsque jai deja ce texte, je ne veux pas quil soit rajouté a la suite
bonjour
j'utilise une comboBox et je souhaite ajouter du texte dans ma combobox mais lorsque jai deja ce texte, je ne veux pas quil soit rajouté a la suite
sans rentrer dans le detail, je pense qu'il faut que tu compare le texte a ajouter a chaque text de ta combobox (compare deux chaine de caractere!!)
penchetoi sur cette piste
(netant que deutant en bcb, je ne peut que te dire ca - dsl)
tu fais comme ça:
si ça te renvoi -1 tu ajoute monTexte a la liste du combobox
Code : Sélectionner tout - Visualiser dans une fenêtre à part Combobox->Items->IndexOf(monTexte);
sinon tu fais rien
ca fait comme jusqu'a maintenant, c a dire que ca ajoute a ma combobox meme si le texte est le meme
si tu suis ce que j'ai ecrit tu dois avoir
et ça marche.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 if (ComboBox1->Items->IndexOf(monTexte)==-1){ //si monTexte n est pas ds la liste du combobox ComboBox1->Items->Add(monTexte); // tu ajoutes ton texte } else { ShowMessage("texte deja ds la liste"); // on ajoute pas }
Salut,
Tu peux te faire un truc comme ca:
Texte_a_ajouter est une AnsiString que tu compares à toutes les AnsiStrings de ta ComboBox. Si tu les a tous vu, elle n'y est pas.
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 int i; for(i=0;i<ComboBox1->Items->Count;i++) { if(Texte_a_ajouter == ComboBox1->Items->Strings[i]) break; } if(i == ComboBox1->Items->Count) { //le texte n'y est pas } else { //le texte y est }
montre nous le (les) code que tu as essayé.
Et eventuellement les code d'erreurs si il y en a.
jai mis sa pour que ca le mette a chaque fois:
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
AnsiString NOM;
TGestionMateriaux->First();
while(!TGestionMateriaux->Eof)
{
NOM=TGestionMateriaux->FieldByName("Famille")->AsString;
ComboBox1->Items->Add(NOM) ;
TGestionMateriaux->Next();
}
}
C'est normal, dans ton code, tu n'a pas fait le test pour savoir si le texte existe deja ou pas, il faut que tu test si il est deja, par les differentes méthodes que mike600river ou bandit boy ton montré précédamment.
c ce que jai fait, jai essayer les 2 methodes et aucune marche
je sais pas sil faut que je garde ma partie de prog ou que je mette juste leur partie seule
c'est pas compliqué, met ceci :
Normalement avec ca ya plus de probleme.
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 __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { AnsiString NOM; TGestionMateriaux->First(); while(!TGestionMateriaux->Eof){ NOM=TGestionMateriaux->FieldByName("Famille")->AsString; if (ComboBox1->Items->IndexOf(NOM)==-1){ ComboBox1->Items->Add(NOM); } TGestionMateriaux->Next(); } }
Partager