dimdidi
Messages postés26Date d'inscriptionmercredi 20 juillet 2005StatutMembreDernière intervention18 juillet 2006
-
28 nov. 2005 à 09:52
cs_gilou33
Messages postés15Date d'inscriptionvendredi 7 novembre 2003StatutMembreDernière intervention29 février 2008
-
17 févr. 2006 à 18:35
Bonjour,
Je voudrais dans une ComboBox pouvoir associé une valeur en fonction de la ligne selectionnée
ex :
Base de donnee
ID -> Valeur
5 -> Toto
10 -> Tata
12 -> Tutu
dans la ComboBox
ComboBox1.Items.Insert(0,'Toto');
ComboBox1.Items.Insert(1,'Tata');
ComboBox1.Items.Insert(2,'Tutu');
Quand je sélectionne "Tata" je voudrais récuperer la valeur "10"
En comparaison, ce que cela ferais en HTML
<select>
<option value='5'>Toto</option>
<option value='10'>Tata</option>
<option value='12'>Tutu</option>
</select>
Si vous avez des idées ...
J'ai essayer avec ComboBox1.Items.InsertObject
Merci d'avance
Dimdidi
A voir également:
Delphi combobox selected item
Delphi combobox - Meilleures réponses
Delphi combobox set selected item - Meilleures réponses
Cirec
Messages postés3833Date d'inscriptionvendredi 23 juillet 2004StatutModérateurDernière intervention18 septembre 202250 28 nov. 2005 à 16:24
Essaye ceci j'ai testé et ca fonctionne
Pour écrir:
procedure TForm1.Button2Click(Sender: TObject);
Function AddObject(s: String):TObject;
Begin
Result := TObject(LongInt(s));
End;
begin
Combobox1.AddItem('Toto',AddObject('DelphiFr c''est Cool'));
end;
Pour lire:
procedure TForm1.Button3Click(Sender: TObject);
begin
ShowMessage(String(Combobox1.items.objects[Combobox1.itemindex]));
end;
cs_deubal
Messages postés198Date d'inscriptionmercredi 26 novembre 2003StatutMembreDernière intervention26 août 2009 28 nov. 2005 à 10:48
pourquoi ne pas faire une requete qui recupere le id selon la ligne selectionné dans la combo ??
ca donnerait un truc du style : 'select id from tatable where valeur like ' +quotedstr(tacombo.text + '%');
// j'ai mis like et % car les utilisateurs peuvent normalement saisir juste le debut d'un mot dans ta combo. la requete recherhce alors sur le dubut du mot.
Voili, voilou, a toi de voir si ca correspond a ton besoin
dimdidi
Messages postés26Date d'inscriptionmercredi 20 juillet 2005StatutMembreDernière intervention18 juillet 2006 28 nov. 2005 à 11:27
Merci pour la réponse
mais cela ne me convient pas
Pour plusieurs raisons :
-Cela implique d'interroger plusieurs fois la base de donnee
Il aller d'abord chercher l'id dans une table pour l'inserer dans une autre table
-Il peux avoir 2 meme texte pour 2 id différents (c'est idiot mais ca peux arriver)
Dimdidi
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_deubal
Messages postés198Date d'inscriptionmercredi 26 novembre 2003StatutMembreDernière intervention26 août 2009 28 nov. 2005 à 12:55
excuz si ca ne convient pas...
y a pas la possibilité de mettre 2 colonnes dans ta combo et comme ca l'id correspond à la seconde colonne de l'item selectionné ?
sinon au chargement de ta combo tu créé un tableau de 3 colonnes contenant :
id - valeur - itemindex
quand une valeur est selectionné tu recup l'id via l'itemindex...
dimdidi
Messages postés26Date d'inscriptionmercredi 20 juillet 2005StatutMembreDernière intervention18 juillet 2006 28 nov. 2005 à 14:08
Merci encore pour la réponse
Cela me conviens mieux (désolé, si je suis difficile )
Mais je cherche une fonctionnalité sur la ComboBox qui me permet d'associé valeur en m'evitant de creer un tableau ou instancier un objet.
J'ai aussi pensé
TInfo=class(TObject)
sValeur
end;
info=Tinfo.create;
info.sValeur='1';
ComboBox1.Items.insertObjet(0,'tata',info);
Aussi
ComboBox1.Items.add(0,'tata=1')
showmessage(ComboBox1.Items.names[0]);
showmessage(ComboBox1.Items.ValueFromIndex[0]);
Cela me conviendrais mais à l'affichage on affiche dans la liste 'tata=1'
dominique.stock
Messages postés436Date d'inscriptionvendredi 7 novembre 2003StatutMembreDernière intervention 8 octobre 20087 28 nov. 2005 à 15:12
En fait,
Cela ne fonctionne avec une string si les strings que tu as mis dans l'objet sont toujours en mémoire, cela revient à créer un tableau de string , affecter chaque ligne du tableau comme objet à ton combobox, et de ne pas détruire ce tableau le temps de l'utilisation du combobox ...
Je ne connais pas le pourquoi du comment, mais c'est la seule façon que j'avais trouvé pour le faire ...
dimdidi
Messages postés26Date d'inscriptionmercredi 20 juillet 2005StatutMembreDernière intervention18 juillet 2006 29 nov. 2005 à 08:24
Merci Dominique,
Pour un string comme valeur avec une stringlist.
Le souci est que c'est difficile si on ajoute des lignes dans la comboBox.
Merci Cirec,
J'ai testé ton programme et ca marche.
Mais ne risquons pas d'avoir un souci si le string(la chaine de caractère) depasse la taille memoire d'un longInt ...
Merci à tous d'avoir répondu à ma question et de m'avoir proposé des soluions.
Cirec
Messages postés3833Date d'inscriptionvendredi 23 juillet 2004StatutModérateurDernière intervention18 septembre 202250 29 nov. 2005 à 11:51
Dimdidi,
oui absolument à partir d'une certaine longueur ca doit poser problème
mais j'ai testé sur 11 ajouts ( 11 X ) le texte qui suit et jusque là pas de souscis