Supprimer des items dans une listbox suivant leur texte

Contenu du snippet

Voici une petite procedure qui permet de supprimer des items d'une listebox, en connaissant leur texte(et non pas leur index) ;)

Pour l'utiliser:
ListBox -> la listbox
Texte -> le texte des items a supprimer
Num -> le nombre de position de l'item si il y en a plusieurs du même texte(le 1er,2eme,10eme), mettre -1 pour supprimer tous les items.

Source / Exemple :


procedure SupprimeItem(ListBox:TListBox;Texte:string;Num:integer=-1);
var a,b:integer;
begin
b:=0;
a:=0;
while a<=ListBox.Count-1 do begin //boucle de toute la liste
  //si il trouve un item et qu'il faut un numéro précis alors il ajoute 1
  if (ListBox.Items.Strings[a] = Texte) and (Num>0) then b:=b+1;
  //kan il arrive au nombre précis, alos il supprime
  if b=Num then begin
    ListBox.Items.Delete(a);
    exit; //fin
  end;
  //si il trouve un item et qu'il fout tous les supprimer
  if (ListBox.Items.Strings[a] = Texte) and (Num=-1) then begin
    ListBox.Items.Delete(a);//supprime
    a:=a-1; //logique car il ya un élément en moin dans la liste
  end;
  inc(a,1);//incrémente de 1(pour l'item suivant ;)
end;

end;

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.