Форум: "Начинающим";
Текущий архив: 2010.01.17;
Скачать: [xml.tar.bz2];
ВнизСортировка 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.005 c