Tri d'un listview avec GroupView Enable
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:
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:
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 :)