Текущий архив: 2006.06.18;
Скачать: CL | DM;
ВнизСортировка TreeView Найти похожие ветки
← →
wsih © (2006-05-29 01:04) [0]Здравствуйте. У каждого узла дерева data указывает на Record Для каждого уровня узла свой рекорд...
Как мне их сортировать по определенным значениям из Record?
нужно сортировать отдельно Level0 по своим значениям Level1 - по своим (внутри родителя который Level0). Cтавлю
SortType:=stData;
А что хотя бы приблизительно в моем случае писать в onCompare?
← →
wsih © (2006-05-29 01:36) [1]ок. Разобрался:
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 -узел отправляется в самый верх ветки. Потом пользователь изменяет значение и узел отсортировывается только при следуещем добавлении узла этого же уровня. (а сего может и не быть)
А как вызывать эту сортировку при нажатии кнопки?
← →
wsih © (2006-05-29 01:59) [2]Ладушки. Все спят уже наверное.
Выкручиваюсь из ситуации так: при изминении значения, по которому происходит сортировка нажимается кнопка. в обработке этой кнопки среди прочего добавил процедуру, которая создает новую запись и ветку (в это время происходит сортировка) а потом это все благополучно удаляю.
Пинайте....
← →
Сергей М. © (2006-05-29 08:42) [3]см. TTreeView.CustomSort()
Страницы: 1 вся ветка
Текущий архив: 2006.06.18;
Скачать: CL | DM;
Память: 0.44 MB
Время: 0.011 c