Val08000
Messages postés22Date d'inscriptionmardi 19 avril 2005StatutMembreDernière intervention23 octobre 2005
-
7 juil. 2005 à 20:05
jlen100
Messages postés1606Date d'inscriptionsamedi 10 juillet 2004StatutMembreDernière intervention25 juillet 2014
-
8 juil. 2005 à 08:46
Bonjour,
Je programme en Delphi depuis pas très longtemps !
Voila mon problème : je dispose d'un Edit, d'un bouton nommé "ajouter" et d'une combobox.
Lorsque je clique sur le bouton "ajouter" j'ai le texte marqué dans Edit qui s'insert dans un nouvel Item de ma ComboBox.
Je voudrais savoir si il est possible et comment faire afin de ne pas pouvoir ajouter deux fois le meme item, donc pour ne pas avoir deux fois le meme item !
En fait, si je mets un certain texte dans Edit, et si je clique deux fois sur le bouton "ajouter", je souhaiterais qu'il n y ait qu'un seul item dans ma Combobox possédant le nom marqué dans Edit !
Merci d'avance !
Val08000
A voir également:
Comment ne pas pouvoir rentrer deux memes items dans une ComboBox ?
Val08000
Messages postés22Date d'inscriptionmardi 19 avril 2005StatutMembreDernière intervention23 octobre 2005 7 juil. 2005 à 22:16
Oui si ca te derange pas, je veux bien la source car la c un peu galere ! Tu peux me l'envoyer a [mailto:val08000@yahoo.fr val08000@yahoo.fr] si ca t'arrange !
En tout cas Merci !
Val08000
Vous n’avez pas trouvé la réponse que vous recherchez ?
cptpingu
Messages postés3840Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention23 août 2024126 7 juil. 2005 à 22:43
Pour les boutons tu ajoute simplement le style XP a ta forme. Pour cela
tu ajoute 'XPMan' dans les uses c'est tout. (regarde la source que je
t'ai envoyé).
jlen100
Messages postés1606Date d'inscriptionsamedi 10 juillet 2004StatutMembreDernière intervention25 juillet 201413 7 juil. 2005 à 23:23
salut ,
il y a plus simple pour savoir si un élément est présent dans une liste : il suffit d'utiliser la methode items.IndexOf() qui recherche la position d'un élément dans une liste.
if ComboBox1.Items.IndexOf(element)<>-1 then l'élément est dans la liste;
jlen100
Messages postés1606Date d'inscriptionsamedi 10 juillet 2004StatutMembreDernière intervention25 juillet 201413 8 juil. 2005 à 08:36
salut,
je ne vois pas le probleme chez moi ça marche.
tu peux utliser le test soit directement à la place de la fonction EstPresent(element) puisque if ComboBox1.Items.IndexOf(element)<>-1 then est vrai si l'élément est dans liste
IndexOf(var:string) est une methode de TStrings;
pour l'utliser directement tu fais:
if ComboBox1.Items.IndexOf(element)<>-1 then
begin
MessageDlg(element +' est deja dans la liste', mtError , [mbOk], 0);
exit; // on averti et on sort sans rien faire
end else;
begin
ComboBox1.Items.Append(element); // met l'élement à la fin de la liste
end;
nota : element doit être une variable de type string;
soit tu l'utilises dans la fonction de cpt pingu
tu fais:
function EstPresent(Element:string):Boolean;
begin
Result:= False;
if ComboBox1.Items.IndexOf(element)<>-1 then Result: =true;
end;
ça marche aussi mais cela donne un code un peu moins efficace que l'utilisation directe.
ComboBox1.Items est un TStrings si tu veux en savoir plus sur les TStrings vas voir dans l'aide DELPHI à la rubrique TStrings tu y trouveras toutes les propriétés et méthodes permettant de les manipuler (insertion, supression, tri..........)
ainsi chaque fois que tu trouveras Items dans un composant tu pourras utiliser ces propriétes et ces methodes;
jlen100
Messages postés1606Date d'inscriptionsamedi 10 juillet 2004StatutMembreDernière intervention25 juillet 201413 8 juil. 2005 à 08:46
c'est encore moi
puisque tu utilises une combobox si tu mets la proprété AutoComplete a true Delphi te donne directement les élélents qui contiennent ce que vient d'être saisie dans la propriété Text