如何使用tlistview中存在的数据对subitem[x]进行排序?

最佳答案

设置SortType := stData并编写

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

例如。如果比较为负,则Item1应该在Item2之前;如果比较为正,则相反。因此,此示例假定SubItem [x]包含整数,将根据SubItem [x]的数值对项目进行排序。

另一方面,如果SubItem [x]包含字符串,则可以编写
procedure TForm1.ListView1Compare(Sender: TObject; Item1, Item2: TListItem;
  Data: Integer; var Compare: Integer);
begin
  Compare := AnsiCompareText(Item1.SubItems[x], Item2.SubItems[x]);
end;

10-08 05:06