Содержание материала

 

Теперь достаточно установить SortType в stBoth (вместо stText, который сортирует по первой колонке не используя метод OnCompare):

 

ListView1.SortType := stBoth;

 

Теперь, чтобы сделать временную сортировку, проделайте следующее:

 

ListView1.SortType := stBoth;

ListView1.SortType := stNone;

 

или ещё:

 

ListView1.CustomSort(nil, 0);

 

Сортировка при помощи функции сортировки

Функция сортировки используется для быстрой сортировки. Эта функция должна возвращать 1, -1 или 0 (как параметр Compare в событии OnCompare). Например:

Code:

function ByFourth(Item1, Item2: TListItem; Data: integer):

integer; stdcall;

var

n1, n2: cardinal;

begin

n1 := StrToInt(Item1.SubItems[2]);

n2 := StrToInt(Item2.SubItems[2]);

if n1 > n2 then

   Result := -1

else if n1 < n2 then

   Result := 1

else

   Result := 0;

end;

  

Теперь, каждый раз, как Вы захотите отсортировать список, достаточно будет вызвать метод CustomSort, передав ему адрес функции сортировки. Например:

 

ListView1.CustomSort(@ByFourth, 0);

 

Параметр Data в функции сортировки используется для указания номера колонки.

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить