Bonjour,

Je veux filtrer une listview mais uniquement sur l'élément text de l'item or cela ne semble pas être le comportement standard.

Dans mon cas , j'ai une liste view avec en Text le nom du client et en Detail Ville+Pays (ItemAppearance = ImageListItmeBottonDetail)

j'ai mis le code suivant dans un TEdit (NomSearch) de recherche
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
procedure TMainClients.NomSearchChange(Sender: TObject);
begin
if Length(NomSearch.Text)>0 then
  begin
       Listview1.Items.Filter:=function(X: string): Boolean
                                       begin
                                           Result:= X.StartsWith(NomSearch.Text,true);
                                       end;
  end
else Listview1.Items.Filter:=nil;
end;
problème X de la fonction semble être aussi bien la valeur liée (via livebindings) à Item.Text que à Item.Detail

est-il possible de faire une distinction ? C'est peut-être ma manière de faire le filtre qui déconne ?
Note : pour l'heure, je peux toujours passer par caractère invisible (espace, espace insécable ...) en début de la partie détail par exemple mais je suis étonné qu'il n'y ait pas une solution plus 'simple', genre une propriété non trouvée. Mais si je voulais quelque chose comme "le client dont le nom contient" (posex) au lieu de "le client dont le nom commence par" (startswith) je serais marron