Как сортировать в TlistView на основе подпункта [x

StackOverflow https://stackoverflow.com/questions/3172028

  •  02-10-2019
  •  | 
  •  

Вопрос

Как сортировать в 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;

например. Если сравнивать отрицательно, элемент1 должен прийти до элемента2; Если сравнивать положительное, обратное применение. Таким образом, этот пример, который предполагает, что подпункт [x] содержит целое число, сортируют элементы в соответствии с числовым значением субтема [x].

Если, с другой стороны, подпункт [x] содержит строки, то вы можете написать

procedure TForm1.ListView1Compare(Sender: TObject; Item1, Item2: TListItem;
  Data: Integer; var Compare: Integer);
begin
  Compare := AnsiCompareText(Item1.SubItems[x], Item2.SubItems[x]);
end;
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top