Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.01.17;
Скачать: CL | DM;

Вниз

Сортировка ListView по 2-ой колонке   Найти похожие ветки 

 
Serov_Kiril   (2009-11-24 17:35) [0]

На форме находится ListView(1-ая колонка - поставщик,2-ая кол.заказов) Нужно отсортировать ListView по второй колонке,-наибольшее кол.заказов сверху и вниз по уменьшению кол.заказов. Как лучче сделать сортировку по количеству?


 
clickmaker ©   (2009-11-24 17:41) [1]

CustomSort()


 
Serov_Kiril   (2009-11-24 18:07) [2]

Разве CustomSort не по алфавиту тогда отсортирует? Мне нужно по наибольшему значению во второй колонке..
Может так:
procedure TForm1.ListView1Compare(Sender: TObject; Item1, Item2: TListItem;
 Data: Integer; var Compare: Integer);
var
n1, n2: integer;
begin
n1 := StrToInt(Item1.SubItems[0]);
n2 := StrToInt(Item2.SubItems[0]);
if n1 > n2 then
  Compare := -1
else if n1 < n2 then
  Compare := 1
else
  Compare := 0;
end;  ???


 
Serov_Kiril   (2009-11-24 18:20) [3]

Не работает :( А если установить SortType в stBoth ваще RunTime Error Out of bounds ;(


 
MBo ©   (2009-11-24 19:58) [4]

А разве у функции сравнения такой прототип должен быть?


 
Сергей М. ©   (2009-11-24 20:09) [5]


> procedure TForm1.ListView1Compare(Sender: TObject; Item1,
>  Item2: TListItem;
>  Data: Integer; var Compare: Integer);


Это что за ахинея ?
Справка для кого писана ?

function CustomSortProc(Item1, Item2: TListItem; ParamSort: integer): integer; stdcall;


 
Демо ©   (2009-11-24 21:15) [6]


> Serov_Kiril   (24.11.09 18:20) [3]


CustomSortProc - это функция обратного вызова и должна ltrkfhbhjdfnmcz именно так, как описана в справке.

В Help даже пример есть:

function CustomSortProc(Item1, Item2: TListItem; ParamSort: integer): integer; stdcall;
begin
  Result := -CompareText(Item1.Caption,Item2.Caption);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ListView1.CustomSort(@CustomSortProc, 0);
end;



Страницы: 1 вся ветка

Текущий архив: 2010.01.17;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.018 c
8-1200143658
452
2008-01-12 16:14
2010.01.17
Как вывести текст в центре Canvas по вертикали и горизонтали?


15-1258112660
TUser
2009-11-13 14:44
2010.01.17
Скончался Виталий Лазаревич Гинзбург


2-1258717465
Andrewtitoff
2009-11-20 14:44
2010.01.17
Что не так?


2-1259348366
serhiyiv
2009-11-27 21:59
2010.01.17
ListView


15-1258407015
Юрий
2009-11-17 00:30
2010.01.17
С днем рождения ! 17 ноября 2009 вторник