J'essaie de trier des éléments contenus dans un ShellListView, après que l'utilisateur ait cliqué sur l'entête d'une colonne. Pour cela, j'utilise la fonction CustomSort de TListView dont hérite TShellListView. Seulement, j'ai l'impression que le tri ne veut pas se faire, et que CustomSort n'est pas appelé correctement ( la fonction me renvoie toujours 0, c'est-à-dire False ). Voici mon code :
Pour écrire CustomSortProc, je me suis inspiré de l'aide de Delphi, mais ça ne veut pas marcher....
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 function CustomSortProc(Item1,Item2:TListItem;ParamSort:integer):integer;stdcall; begin if ParamSort=0 then Result:=CompareText(Item1.Caption,Item2.Caption); else Result:=CompareText(Item1.SubItems[ParamSort-1],Item2.SubItems[ParamSort-1]); end; procedure TFTPSeeKerForm.LocalListViewColumnClick(Sender: TObject; Column: TListColumn); var numeroColonne:integer; begin numeroColonne:=0; while ((numeroColonne<=LocalListView.Columns.Count-1) and (Column.Caption<>LocalListView.Columns[numeroColonne].Caption)) do numeroColonne:=numeroColonne+1; LocalListView.CustomSort(@CustomSortProc,numeroColonne); end;
Merci beaucoup !
a+
Partager