Forum Clubic

Programateur en herbe (delphi) - mon premier probleme : la combobox

http://membres.lycos.fr/monftpagora/smiles/hello.gif salut ! salut ! à tout les programmeurs clubiciens …

voila je me suis dit que ce serait bien de s’y mettre (à programmer http://membres.lycos.fr/monftpagora/smiles/ordi.gif)
alors je me suis lancer sur delphi

Pris en main réussie http://membres.lycos.fr/monftpagora/smiles/gap.gif[/img], j’ai passer haut la main la compilation de la petite fenêtre qui dit bonjour. [img]http://membres.lycos.fr/monftpagora/smiles/clapping.gif
j’ai même réussi à faire un peu de calcul … http://membres.lycos.fr/monftpagora/smiles/ANIMconfus015.gif

et maintenant je voudrais faire quelque chose d’assez précis qui me ferait gagner pas mal de temps a mon bouleau http://membres.lycos.fr/monftpagora/smiles/dry.gif

c’est le genre de truc que l’on pourrait certainement faire avec excel mais bon … http://membres.lycos.fr/monftpagora/smiles/ANIMperso019.gif
ça fera plus sympa dans une petite fenêtre… http://membres.lycos.fr/monftpagora/smiles/dance4.gif

donc mon premier souci c’est d’associer des valeurs aux variables de la combobox http://membres.lycos.fr/monftpagora/smiles/shutup.gif
je sais pas si le vocabulaire que j’utilise est le bon …
en faites je voudrait que chaque ligne de la combobox soit associée à une constante

alors je me dit que ce doit être possible avec un code a rallonge en utilisant des “if” “else” mais je suis sur qu’il y a façon de faire ça beaucoup plus simplement
alors si vous vouliez bien me mettre sur la bonne voi ce serait vraiment sympathique. http://membres.lycos.fr/monftpagora/smiles/angel_not.gif

C’est programmeur et pas programmateur, on est pas des machines :wink:
Pour ton problème, j’ai la solution mais pas en Delphi, si ça t’interesse, fait moi signe.

http://membres.lycos.fr/monftpagora/smiles/confu.gif[/img] en C ? [img]http://membres.lycos.fr/monftpagora/smiles/huh.gif

http://membres.lycos.fr/monftpagora/smiles/no2.gif merci

un langage a la fois http://membres.lycos.fr/monftpagora/Pack5/36_2_45.gif

PS : je sais faire ça en php

Via les API, donc ca ressemblera un peu à la même chose en Delphi.
Bon, je le met, tu vois apres :


typedef struct valeur_combobox
{
     char *    szValeur;
     int       valeur;
}valeur_combobox;
static valeur_combobox combobox[5] = { {"pomme", 1},
                                        {"pêche", 2},
                                        {"poire", 3},
                                        {"fraise", 4},
                                        {"abricot", 5} 
                                      };

// montre le contenu
int main()
{
int i;
    
    for (i=0; i < 5; i++)
        printf("Index %d valeur %s\n", combobox[i].valeur, combobox[i].szValeur);
        
    getch();
    return 0;
}

// pour ton problème, ce sera
    for (i=0; i < 5; i++)
         SendMessage(GetDlgItem(hwnd, IDC_COMBOBOX), CB_ADDSTRING, 0, (LPARAM)(LPCTSTR)combobox[i].szValeur);

J’en vois déja me dire que ca sert à rien de créer une structure car il pourra se baser sur l’index de la combobox, met la, vu que je connais pas la nature des “constantes” et de leur utilisation …

le plus simple, mais pas le plus optimisé, c’est de stocker tes données dans une simple liste de chaine sous la forme nom=valeur

exemple

MesDonnees := TStringList.create;
MesDonnees.add('pomme=1');
MesDonnees.add('pêche=2');
MesDonnees.add('poire=3');

pour accéder à un nom tu fais MesDonnees.Names[index]
MesDonnees.Names[0] te donnes ‘pomme’ etc

pour accéder à une valeur tu fais
MesDonnees.Values[nom]
MesDonnees.Values[‘pomme’] te donne 1

pour remplir ta combo tu fais

for i:=0 to MesDonnees.count-1 do
 combo.items.add(Mesdonnees.Names[i]);

pour récupérer une valeur à partir de l’élément sélectionné dans la combo cela donne

Mesdonnees.Values[combo.text]

tu peux mettre ce que tu veux comme nom et valeur MesDonnees.add(‘pomme=Miam’) est correct

tu peux modifier tes données par MesDonnees.Values[‘pomme’]:=‘MiamMiam’ mais tu ne peux pas faire MesDonnees.Names[0]:=‘Pommes’

tu peux sauvegarder et relire tes données par MesDonnees.SaveToFile et MesDonnees.LoadFromFile

Haaa ! cool ! http://membres.lycos.fr/monftpagora/smiles/ANIMbien047.gif

je vais essayer ça. http://membres.lycos.fr/monftpagora/smiles/hmm.gif

et si ça marche, je reviens poster un mega remerciement. http://membres.lycos.fr/monftpagora/smiles/ouioui.gif