Форум: "KOL";
Текущий архив: 2007.10.21;
Скачать: [xml.tar.bz2];
ВнизКак сортировать узлы в TreeView ? Найти похожие ветки
← →
finder2007 © (2007-03-20 01:37) [0]Пытаюсь использовать метод SortData.
В TLESort(Sender: PControl; Data1, Data2: Pointer)
Data1 и Data2 -> nil.
← →
Vladimir Kladov (2007-03-20 15:47) [1]Что за событие такое?
← →
finder2007 © (2007-03-20 16:23) [2]Виноват: компонент - расширение стандартного TreeView - mdvTreeListEdit,
property OnTLESort: TOnTLESort read GetOnTLESort write SetOnTLESort;
// Вызывается при сортировке
← →
mdw © (2007-03-20 21:27) [3]Отвечу завтра но мыло. Но на вскидку, Data1, Data2 это данные привязанные к к узлам вы должны знать что там лежит, сравнить их и вернуть нужное значение. А что, я разьве в комментариях не написал как пользовать?
← →
finder2007 © (2007-03-20 21:51) [4]Т.е если я сортирую по какой либо колонке, то сначала должен пройти все дерево и присвоить соответствующие данные?
← →
finder2007 © (2007-03-20 22:00) [5]Кстати, вдогонку - почему-то не получается поставить пиктограммы на узлы. Делал вроде бы так же как в стандартном
← →
mdw © (2007-03-20 23:24) [6]
> Т.е если я сортирую по какой либо колонке, то сначала должен
> пройти все дерево и присвоить соответствующие данные?
В общем, ситуация такая, насколько помню. TreeView сортируется двумя способами (см. MSDN) или по строкам в узле, но только одним способом, наверное по алфавиту. Мне было неинтересно, даже не смотрел. Или по данным, привязанным к узлу (свойство Data). В этом случае есть возможность сортировать произвольно. Соответственно в TLESort(Sender: PControl; Data1, Data2: Pointer) передаются Data двух узлов, которые сравниваются, а вернуть нужно 1 или 0 или -1, в зависимости что первее.
Если все данные лежат в дереве, а не привязаны к Data, то при заполнении можно в дата просто ложить хендл узла, а в TLESort обращаться к ним через Data1, Data2.
Да, автоматически TreeView не сортируется, поэтому в нужный момент нужно вызвать метод Sort.
> Кстати, вдогонку - почему-то не получается поставить пиктограммы
> на узлы. Делал вроде бы так же как в стандартном
Гм. Бикоз.
Отрисовка вся ручная, в стандартном сколько колонок? Одна? Ну и вот...
По умолчанию отображается текст, грубо говоря это аналог VCL-StringGrid, но строки являются узлами дерева. Если нужно что нарисовать то есть OnDraeCell.
← →
mdw © (2007-03-20 23:29) [7]P.S. Если подробнее нужно, пиши на мыло, отвечу, могу и с примером.
С форумом тех. проблемы есть, только вечером и только в общих чертах.:((
← →
finder2007 © (2007-03-21 12:19) [8]Все, спасибо - сортировка заработала.
Страницы: 1 вся ветка
Форум: "KOL";
Текущий архив: 2007.10.21;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.042 c