Supprimer les doublons d'un combobox

Contenu du snippet

Autre méthode en utilisant uniquement le Combobox :

var
  i: Integer; 
begin 
  with ComboBox1.Items do
    for i:= Count - 1 downto 1 do
      if IndexOf(Strings[i]) < i then
        Delete(i); 
end; 
Ainsi on peut garder l'ordre d'origine des items. 
Si on veut classer par ordre alphabétique : il suffit de mettre la propriété "Sorted" du Combobox1 à true (ou mettre Combobox1.Sorted:=True)
J'ai mis "downto 1" (et pas "downto 0") car l'item "0" n'a pas besoin d'être traité
Pour les puristes une boucle "try" peut être rajoutée.
Toutefois le code ne coince pas même s'il n'y a aucun item dans le Combobox. 
Le même raisonnement peut être utilisé pour l'élimination de doublons dans une liste d'éléments (TStringlist par exemple) en gardant l'ordre d'origine (càd qu'on enlève les "Add" supplémentaires supposés avoir été rajoutés ultérieurement)
drjerome 


Compatibilité : Delphi 5

Disponible dans d'autres langages :

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.