Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.10.21;
Скачать: CL | DM;

Вниз

Как сортировать узлы в 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 вся ветка

Текущий архив: 2007.10.21;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.021 c
1-1184324771
clickmaker
2007-07-13 15:06
2007.10.21
Как открыть веб-папку программно?


2-1190800661
wowAaA
2007-09-26 13:57
2007.10.21
TStringList +Memo


8-1166580641
>>DEATH<<
2006-12-20 05:10
2007.10.21
палитра в bmp


2-1190629809
click
2007-09-24 14:30
2007.10.21
Выделение мышью нескольких TImage й


15-1190563931
ProgRAMmer Dimonych
2007-09-23 20:12
2007.10.21
Поддскажите, плз, самое простое и быстрое решение...