Bonjour,
J'ai sur un form une t�che r�p�titive qui consiste � affecter aux items de plusieurs combobox des noms de champs de fichiers ayant �t� s�lectionn�s dans d'autre comboboxes.
J'ai donc naturellement eu envie de faire une fonction pour traiter �a, et de passer en param�tre le nom du fichier s�lectionn� et la boite de liste qui doit recevoir la liste des champs.
Ca donne �a:
La compilation se passe bien, mais la boite de liste dont le nom est pass� en param�tre ne se remplit pas. Du coup, je me dis que les Items vont bien dans "boite" mais disparaissent peut-�tre sit�t la fonction ex�cut�e. Est-ce l'explication ? Comment peut-on y rem�dier d'une fa�on ou d'une autre pourvu que ma bo�te se remplisse sur le form ?
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
20
21
22
23
24
25
26
27
28
29
30 void AffecteListeChampsA(AnsiString NomFichier, AnsiString BoiteListe) { TComboBox* Boite = new TComboBox(ReqLib); int NbCont=ReqLib->ControlCount; for (int i = 0;i < NbCont;i++) if (ReqLib->Controls[i]->Name.AnsiCompare(BoiteListe) == 0) Boite = (TComboBox*)ReqLib->Controls[i]; Boite->Parent=ReqLib; AnsiString RequeteChps="SHOW COLUMNS FROM "+NomFichier; ReqLib->MysqlClientDataSetFic->Close(); ReqLib->MysqlClientDataSetFic->CommandText=RequeteChps; ReqLib->MysqlClientDataSetFic->Open(); int nbChps=ReqLib->MysqlClientDataSetFic->RecordCount; if (nbChps==0) { MessageBox(NULL,"Aucun champ trouvé !","Alerte pour l'Utilisateur", MB_OK); ReqLib->MysqlClientDataSetFic->Close(); } else { while(!ReqLib->MysqlClientDataSetFic->Eof) { Boite->Items->Add(VarToStr(ReqLib->MysqlClientDataSetFic->FieldValues["FIELD"])); ReqLib->MysqlClientDataSetFic->Next(); } } ReqLib->MysqlClientDataSetFic->Close(); }
J'ai pas mal cherch� sur le net y compris le forum mais je n'ai pas trouv� de vraie m�thode pour acc�der directement � une combobox (et la remplir) avec une fonction.
Merci pour vos suggestions!
Partager