2010-07-03 8 views

risposta

9

Set SortType := stData e scrivere

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

per esempio. Se compare è negativo, Item1 dovrebbe venire prima dell'articolo2; se il confronto è positivo, si applica il contrario. Quindi questo esempio, che presuppone che SubItem [x] contenga un intero, ordinerà gli elementi in base al valore numerico di SubItem [x].

Se, d'altra parte, SubItem [x] contiene stringhe, allora si può scrivere

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