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
problème X de la fonction semble être aussi bien la valeur liée (via livebindings) à Item.Text que à Item.Detail
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;
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
Partager