2010-07-03 10 views

Répondre

9

Set SortType := stData et écrire

procedure TForm1.ListView1Compare(Sender: TObject; Item1, Item2: TListItem; 
    Data: Integer; var Compare: Integer); 
begin 
    Compare := StrToInt(Item1.SubItems[x]) - StrToInt(Item2.SubItems[x]) 
end; 

par exemple. Si la comparaison est négative, Item1 devrait précéder Item2; si la comparaison est positive, l'inverse s'applique. Ainsi, cet exemple, qui suppose que SubItem [x] contient un entier, va trier les items en fonction de la valeur numérique de SubItem [x].

Si, d'autre part, sous-élément [x] contient des chaînes, vous pouvez écrire

procedure TForm1.ListView1Compare(Sender: TObject; Item1, Item2: TListItem; 
    Data: Integer; var Compare: Integer); 
begin 
    Compare := AnsiCompareText(Item1.SubItems[x], Item2.SubItems[x]); 
end;