2014-11-21 3 views
0

Что я хочу достичь, так это то, что пользователи могут повторно заказывать узлы, нажав кнопку «вверх» и «вниз». Вот мой код.Как обновить индекс узла после функции MoveTo, выполняемой в TcxTreeList из Delphi

procedure TForm1.btnUPClick(Sender: TObject); 
var tempNode : TcxTreeListNode; 
sIndex : integer; 
begin 
    if cxTreeList1.FocusedNode = nil then exit; 
    cxTreeList1.FocusedNode.MoveTo(cxTreeList1.FocusedNode.GetPrev, tlamInsert); 
end;  

Неудивительно, что код работает нормально. Я вижу, что узлы движутся вверх и вниз. но, похоже, их индекс не обновляется после переезда.

тестовый код:

for i:=0 to cxTreeList1.count -1 do begin 
    showmessage(cxTreeList1.nodes[i].values[0]); 
end; 

Результат: яблоко, банан, конфеты, алмаз, слон

после щелчка 'вверх' и «вниз кнопок больше, чем сто раз.

результат: яблоко, банан, конфеты, алмаз, слон

Что я ожидал

слон, банан, конфеты, алмаз, яблоко (потому что я повторно заказанные узлы)

ответ

0

Вы ссылаясь на Developer Express TcxTreelist, да?

Причина, по которой я спрашиваю, заключается в том, что если я попытаюсь выполнить свой код, то компилятор будет указывать на «Узлы» в качестве неизвестного идентификатора, поэтому я не понимаю, как вам удается компилировать ваш код, не говоря уже о том, запустить. Тем не менее, с помощью TcxTreelist от Devex, следующий код правильно отображает элементы дерева в том порядке, в котором они отображаются , в настоящее время отображается (т.е. то, что я вижу в treelist после того, как я нажал кнопку «Вверх», скажем «Банана»), а не их оригинальные как показано в редакторе Items в среде IDE. Обратите внимание, что это использует свойства элементов TreeList, а не ее «Вершина»:

procedure TForm1.btnGetItemsClick(Sender: TObject); 
var 
    i : Integer; 
begin 
    Memo1.Lines.Clear; 
    for i:=0 to cxTreeList1.Count - 1 do begin 
    Memo1.Lines.Add(cxTreeList1.Items[i].Values[0]); 
    end; 
end; 

BTV, относительно точки в названии вашего Q: Ваше предположение о том, что нуждается в обновлении индекса свойства узла не так, я думаю.

+0

Большое спасибо за помощь. Это именно то, что я ищу. «Элементы» были ответом :) – kitty169