Страница: 1 |
Страница: 1 |
Вопрос: Сортировка ListView
Добавлено: 06.05.07 19:07
Автор вопроса: ZagZag | ICQ: 295002202
Добрый день. =P
У меня вопрос по сабжу.
Наверняка это уже обсуждалось, но только я никак не могу найте где =(
Есть ListView. В нем 3 столбца. (Хотя их количество может меняться)
Нужно при щелчке по заголовку отсортировать повозрастанию/убыванию строки (естественно не нарушая связей между полями)
Поиск по гуглю, pbforums (архив в CHM) и vbnet.ru выдал мне только что нудно использовать LVM_SORTITEMS
Что нужно писать в ListViewSortProc?
Может существует более гуманный способ сортировки?
В принципе записей у меня немного (0-2000), но быстродействие не помешает, т.ч. хотелось бы чтобы метод сортировки был не "пузырьком"
Ответы
Всего ответов: 4
Номер ответа: 1
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #1
Добавлено: 06.05.07 21:08
int CALLBACK CompareFunc(LPARAM lParam1, LPARAM lParam2,
LPARAM lParamSort);
The lParam1 parameter is the 32-bit value associated with the first item being compared, and the lParam2 parameter is the value associated with the second item. These are the values specified in the lParam member of the items' LVITEM structure when they were inserted into the list. The lParamSort parameter is the same value passed to the LVM_SORTITEMS message.
Номер ответа: 2
Автор ответа:
ZagZag
ICQ: 295002202
Вопросов: 87
Ответов: 1684
Профиль | | #2
Добавлено: 06.05.07 21:44
Ага, благо с английским впорядке, вроде.
А есть уже готовый пример?
Бугага! Посмотрите ApiViewer!:
Const LV_ITEMA As Long = LVITEMA
Const LVITEMA As Long = LV_ITEMA
Ну и какое значение у LV_ITEMA, которая равна LVITEMA?
Всеравно прийдется писать функцию сравнения?
Номер ответа: 3
Автор ответа:
ZagZag
ICQ: 295002202
Вопросов: 87
Ответов: 1684
Профиль | | #3
Добавлено: 06.05.07 21:46
Нашел вроде. ГуглеКодом (http://www.google.com/codesearch?q=lang%3Abasic+LVM_SORTITEMS&hl=ru)
http://www.vbaccelerator.com/codelib/comctl/lvplay.zip
http://www.quitetheberries.com/mrx/DownLoad/xDirsDemoSrc.zip
http://btmtz.mvps.org/listview/vbdirectorylv.zip
Номер ответа: 4
Автор ответа:
ZagZag
ICQ: 295002202
Вопросов: 87
Ответов: 1684
Профиль | | #4
Добавлено: 07.05.07 01:03
Разобрался. Все гораздо проще:
frmMain.lvTest.SortOrder = True|False
frmMain.lvTest.SortKey = ColumnHeader.Index - 1
frmMain.lvTest.Sorted = True
Тема закрыта