How to sort in tlistview
with data present in subitem[x]
?
Asked
Active
Viewed 2,720 times
8

Mosty Mostacho
- 42,742
- 16
- 96
- 123

steve0
- 721
- 3
- 11
- 19
1 Answers
10
Set SortType := stData
and write
procedure TForm1.ListView1Compare(Sender: TObject; Item1, Item2: TListItem;
Data: Integer; var Compare: Integer);
begin
Compare := StrToInt(Item1.SubItems[x]) - StrToInt(Item2.SubItems[x])
end;
for instance. If compare is negative, Item1 should come before Item2; if compare is positive, the opposite applies. Thus this example, which assumes that SubItem[x] contains an integer, will sort the items according to the numerical value of SubItem[x].
If, on the other hand, SubItem[x] contains strings, then you can write
procedure TForm1.ListView1Compare(Sender: TObject; Item1, Item2: TListItem;
Data: Integer; var Compare: Integer);
begin
Compare := AnsiCompareText(Item1.SubItems[x], Item2.SubItems[x]);
end;

Andreas Rejbrand
- 105,602
- 8
- 282
- 384