Страница: 1 |
Страница: 1 |
Вопрос: Очередной баг с ListView, глюки с простейшей сорти
Добавлено: 25.11.05 19:35
Автор вопроса: Pantalone
Вот примерчик: http://pantalone.nm.ru/ListViewBug3.rar
Сортировка самая примитивная в три строки кода всего.
Глюк в том что при русских языковых настройках сортировка работает нормально, а если языковые настройки сменить на английские, то слова начнут сортироваться неверно, а именно так:
Африка
Africa
Holland
Наполеон
Норвегия
Norway
Как победить?
Ответы
Всего ответов: 10
Номер ответа: 1
Автор ответа:
Victor
ICQ: 345743490
Вопросов: 42
Ответов: 385
Web-сайт:
Профиль | | #1
Добавлено: 25.11.05 19:45
Поставить Option Compare Binary в начало модуля. Или писать собственную процедурку сравнения строк.
И сравнивать строчки желательно в UCase'е.
Номер ответа: 2
Автор ответа:
Victor
ICQ: 345743490
Вопросов: 42
Ответов: 385
Web-сайт:
Профиль | | #2
Добавлено: 25.11.05 19:58
Посмотрел проект. Там использутся встроенная в ListView сортировка.
К сожалению, я не знаю, как ее менять (и подозреваю, что это невозможно). Но можно сортировку руками откодить, и там уже делать что в голову взбредет.
Номер ответа: 3
Автор ответа:
Pantalone
Вопросов: 32
Ответов: 104
Профиль | | #3
Добавлено: 25.11.05 20:42
Да, вот это засада, у меня весь проект на этой сортировке звязан... Советы во втором посте естественно не помогли.
Номер ответа: 4
Автор ответа:
Calhoon
ICQ: 789764
Вопросов: 90
Ответов: 230
Web-сайт:
Профиль | | #4
Добавлено: 26.11.05 04:42
Может, попробуешь считать строки в массив, отсортировать его, потом загрузить обратно?
Номер ответа: 5
Автор ответа:
Pantalone
Вопросов: 32
Ответов: 104
Профиль | | #5
Добавлено: 26.11.05 19:08
С массивом возьни много, помимо самой сортировки еще придется менять ключи и индексы в соответствии с сортировкой и отслеживать выделенные строки чтобы они соответственно перемещались, ListView делает это все автоматом. Есть подозрение что с юникодом какая-то проблема.
Номер ответа: 6
Автор ответа:
HOOLIGAN
Вопросов: 0
Ответов: 1066
Профиль | | #6
Добавлено: 26.11.05 22:16
С массивом как раз меньше возни, просто взял и сделал.
А с листвью будешь долбиться, пытаясь добиться от него того, что он не может. И в конце поймёшь, что тупые янки не предусмотрели, что могут быть и другие алфавиты, кроме английского.
Номер ответа: 7
Автор ответа:
Pantalone
Вопросов: 32
Ответов: 104
Профиль | | #7
Добавлено: 27.11.05 11:53
Он может, если хорошенько попросить
Номер ответа: 8
Автор ответа:
Calhoon
ICQ: 789764
Вопросов: 90
Ответов: 230
Web-сайт:
Профиль | | #8
Добавлено: 27.11.05 20:41
Короче, 3 путь решения проблемы:
1. Мучаешься, спрашиваешь, ждешь, и, может быть, получишь то, что хотел.
2. Для сортировки загоняешь все данные в массив, сортируешь, выводишь обратно.
3. Используешь другой контрол, например VSFlexGrid.
Удачи
Номер ответа: 9
Автор ответа:
Sur
ICQ: 1249088
Вопросов: 10
Ответов: 304
Web-сайт:
Профиль | | #9
Добавлено: 28.11.05 11:45
А у LV sorted в true поставить не помогает?
Номер ответа: 10
Автор ответа:
Sur
ICQ: 1249088
Вопросов: 10
Ответов: 304
Web-сайт:
Профиль | | #10
Добавлено: 28.11.05 11:50
простите, туплю