как сортировать в Tlistview на основе подпункта [x] - PullRequest
7 голосов
/ 03 июля 2010

Как отсортировать в tlistview с данными, представленными в subitem[x]?

1 Ответ

10 голосов
/ 03 июля 2010

Установить 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;
...