Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сортировка TreeView


wsih ©   (2006-05-29 01:04:00) 

Здравствуйте. У каждого узла дерева data указывает на Record Для каждого уровня узла свой рекорд...
Как мне их сортировать по определенным значениям из Record?
нужно сортировать отдельно Level0 по своим значениям Level1 - по своим (внутри родителя который Level0). Cтавлю
SortType:=stData;
А что хотя бы приблизительно в моем случае писать в onCompare?


Сергей М.   (2006-05-29 08:42:00) [1]

см. TTreeView.CustomSort()


wsih   (2006-05-29 01:59:00) [2]

Ладушки. Все спят уже наверное.
Выкручиваюсь из ситуации так: при  изминении значения, по которому происходит сортировка нажимается кнопка. в обработке этой кнопки среди прочего добавил процедуру, которая создает новую запись и ветку (в это время происходит сортировка) а потом это все благополучно удаляю.
Пинайте....


wsih   (2006-05-29 01:36:00) [3]

ок. Разобрался:
procedure TForm1.TreeCompare(Sender: TObject; Node1, Node2: TTreeNode;
 Data: Integer; var Compare: Integer);
var
p1,p2:Pointer;
begin
p1:=Node1.Data;
p2:=Node2.Data;
if node1.Level=1 then begin
  if LayerPointer(p1).depth > LayerPointer(p2).depth then compare:=1 else compare:= -1;
end;
Label4.Caption:=Node1.Text;
Label5.Caption:=node2.Text;
end;

Следующая проблема - сравнение происходит только при создании очередного узла. Суть:  - создается узел. поле по которому происходит сортировка - по дефолту =0 -узел отправляется в самый верх ветки. Потом пользователь изменяет значение и узел отсортировывается только при следуещем добавлении узла этого же уровня. (а сего может и не быть)
А как вызывать эту сортировку при нажатии кнопки?


Наверх

Титульная страница Поиск, карта сайта Написать письмо