| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Выравнивание в TreeView |
| Автор: Coderr 19.1.2008, 00:01 |
| Доброго времени суток! Что-то не получается сделать сортировку, подскажите. TreeView у меня двухуровневый(представте контакт лист icq. Первый уровень - группы, второй, т.е. Child'ы, - юзеры). Так вот. Надо отсортировать по убыванию индексов иконок юзерские ноды. Как это рализовать? |
| Автор: Coderr 19.1.2008, 23:25 |
| Ой! Я ошибся в заголовке темы! Не выравнивание, а сортировка! Прошу прощения... |
| Автор: VICTAR 19.1.2008, 23:57 |
| У TreeView есть событие OnCompare. Используй его. PS а вообще лучше юзать VirtualTreeView |
| Автор: Coderr 20.1.2008, 00:11 |
| Virtualным деревом я уже пользовался. И даже готовый пример у меня был, сам делал(в мае прошлого года). Но... Достав сейчас этот исходник с запылившейся полки я понял, что уже ничего не понимаю. OnCompare видел. А как им пользоваться? В мануале делфовом видел пример, что-то я с ним не разобрался. |
| Автор: VICTAR 20.1.2008, 00:19 |
| Ну если сам делал, то проблем вообще не должно возникнуть. Принцип один и тот же. А вообще у тебя два нода, сравнивай их по нужному параметру и результат заноси в Compare. 0 - если равно >0 - первое больше второго <0 - второе больше первого Добавлено через 4 минуты и 20 секунд Ах да, SortType выставь в stData или stBoth |
| Автор: Coderr 20.1.2008, 00:35 | ||
Вот написал примерно, только не заходит ни разу в обработчик события:
Т.е. ставил брекпойт на 4 строку. Ни разу там не остановилась прога. :( Пардон! Поставил на пятую строку - словил брекпойнт. Например, так называемые группы он всё же сортирует. :( Вот! Сейчас заметил закономерность. Добавляем элемент, он не сразу встаёт на нужное место, а только после добавления следующего элемента. |
| Автор: VICTAR 20.1.2008, 01:00 |
| У меня получилось |
| Автор: Coderr 20.1.2008, 01:13 |
| Виктар! Спасибище! Опять меня выручил! Именно процедура AlphaSort мне и нужна была! ;) Теперь вызываю её после добавления элемента - всё работает! |
| Автор: VICTAR 20.1.2008, 01:18 |
| Не за что |