Supprimer dernier élément listbox [Résolu]

Signaler
Messages postés
140
Date d'inscription
dimanche 18 avril 2004
Statut
Membre
Dernière intervention
20 mars 2006
-
Messages postés
140
Date d'inscription
dimanche 18 avril 2004
Statut
Membre
Dernière intervention
20 mars 2006
-
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

Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
28
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.
Messages postés
1154
Date d'inscription
samedi 14 août 2004
Statut
Membre
Dernière intervention
5 avril 2012
2
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.
Messages postés
1721
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
30 août 2020
4
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'
Messages postés
1721
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
30 août 2020
4
Désolé, WhiteHippo, je n'avais pas rafraîchi la page...

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



Bonne prog'
Messages postés
1721
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
30 août 2020
4
Houlala, je voulais écrire :



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




Sinon, ça va pas arrêter de boucler !...
Messages postés
1721
Date d'inscription
vendredi 27 décembre 2002
Statut
Modérateur
Dernière intervention
30 août 2020
4
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 !
Messages postés
4297
Date d'inscription
samedi 19 janvier 2002
Statut
Modérateur
Dernière intervention
9 janvier 2013
28
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.
Messages postés
442
Date d'inscription
jeudi 4 avril 2002
Statut
Membre
Dernière intervention
11 août 2008

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
Messages postés
140
Date d'inscription
dimanche 18 avril 2004
Statut
Membre
Dernière intervention
20 mars 2006

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 :)