Supprimer dernier élément listbox

Résolu
scoder Messages postés 140 Date d'inscription dimanche 18 avril 2004 Statut Membre Dernière intervention 20 mars 2006 - 5 avril 2005 à 14:04
scoder Messages postés 140 Date d'inscription dimanche 18 avril 2004 Statut Membre Dernière intervention 20 mars 2006 - 6 avril 2005 à 12:18
bonjour



je désirerais supprimer un élément dans une listbox dont le texte
correspondrait à un choix de l'utilisateur. la suppression fonctionne
très bien pour n'importe quel élément mais pas pour le dernier....
quelqu'un aurait une idée? voilà mon code



curseur := 0;

deleted := false;

while (curseur < listbox2.Count -1) and not(deleted) do

begin

if listbox2.Items.Strings[curseur]
= lenom then // parcours de la listbox pour trouver l'élément à
supprimer

begin


listbox2.Items.Delete(curseur); //suppression dans la
listbox

deleted := true;

end;


inc(curseur,1); //incrémentation du curseur pour passer à
l'élément suivant

end;

9 réponses

cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
6 avril 2005 à 09:19
S'il n'y a plus que ça à faire, je te laisse le soin de le faire


<HR color=#008000>
Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
3
WhiteHippo Messages postés 1154 Date d'inscription samedi 14 août 2004 Statut Membre Dernière intervention 5 avril 2012 3
5 avril 2005 à 19:28
while (curseur <=
listbox2.Count -1) and not(deleted) do

ou bien si tu préfères (car c'est la même chose )

while (curseur < listbox2.Count ) and not(deleted) do // suppression du -1

Cordialement.
0
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
5 avril 2005 à 19:44
Tu as un petit problème avec Repeat until et While, mec...



Tu fais



while (curseur < listbox1.Items.Count)



ou



until (curseur < listbox1.Items.Count -1)



au choix



Bonne prog'
0
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
5 avril 2005 à 19:47
Désolé, WhiteHippo, je n'avais pas rafraîchi la page...

Mais je crois que ma réponse complète la tienne.



Bonne prog'
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
5 avril 2005 à 19:52
Houlala, je voulais écrire :



until (curseur = listbox1.Items.Count -1)




Sinon, ça va pas arrêter de boucler !...
0
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
5 avril 2005 à 20:02
Enfin, ça va jamais boucler, je voulais dire.

Désolé.

Mon problème actuel est que je suis sur 2 trucs à la fois, je crois que ça me court-circuite les neurones dédiés à Delphi.

Je me tire !
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
6 avril 2005 à 00:21
Je ne comprends pas bien s'il s'agit de supprimer toutes les occurences d'une chaîne saisie par l'utilisateur ou de supprimer la première occurrence trouvée !
Dans la deuxième hypothèse, il suffit de faire :
<!--StartFragment-->
  with ListBox2.Items do
    if IndexOf(LeNom) <> -1 then
      Delete(IndexOf(LeNom));


<HR color=#008000>Pensez à cliquer sur Réponse acceptée lorsque la réponse vous convient.
0
neodelphi Messages postés 442 Date d'inscription jeudi 4 avril 2002 Statut Membre Dernière intervention 11 août 2008
6 avril 2005 à 07:54
Lol Delphiprog, c'est toi qui a fait le plus simple... En revanche c'est pas optimisé je pense : il vaudrai mieu stocker l'index parcequ'il fait la recherche deux fois de suite et donc c'est deux fois plus long que la méthode au dessus...

neodelphi
0
scoder Messages postés 140 Date d'inscription dimanche 18 avril 2004 Statut Membre Dernière intervention 20 mars 2006
6 avril 2005 à 12:18
merci à vous c nickel, je n'ai testé que la dernière solution donnée
parce que la + courte et je n'ai que très peu de tps entre midi, enfin
les autres devraient marcher aussi :)
0
Rejoignez-nous