Bonjour,

depuis peu, j'ai ajouté a des TListView de mon application des group. (TListGroup)
Malheureusement, la fonction de tri alphabétique lors d'une click sur une colonne ne fonctionne plus.
Du moins, tant que GroupView est Enable.

Voici ma fonction d'origine dans le OnCompare :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
    if SortColumn = 0 then
      Compare := AnsiCompareStr(Item1.Caption, Item2.Caption)
    else
      Compare := AnsiCompareStr(Item1.SubItems[SortColumn-1], Item2.SubItems[SortColumn-1]);
    if SortReverse then Compare := 0 - Compare;
Et voici la fonction OnCompare mise à jour pour gérer les group :
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
18
19
20
 
  if (Sender as TListView).GroupView then
  begin
    if Item1.GroupID = Item2.GroupID then
    begin
      if SortColumn = 0 then
        Compare := AnsiCompareStr(Item1.Caption, Item2.Caption)
      else
        Compare := AnsiCompareStr(Item1.SubItems[SortColumn-1], Item2.SubItems[SortColumn-1]);
      if SortReverse then Compare := 0 - Compare;
    end;
  end
  else
  begin
    if SortColumn = 0 then
      Compare := AnsiCompareStr(Item1.Caption, Item2.Caption)
    else
      Compare := AnsiCompareStr(Item1.SubItems[SortColumn-1], Item2.SubItems[SortColumn-1]);
    if SortReverse then Compare := 0 - Compare;
  end;
Si l'un d'entre vous à déjà réussi à faire fonctionner la fonction de tri avec des group actif, je suis preneur