首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Delphi的MoveTo函数执行TcxTreeList后更新节点的索引

如何在Delphi的MoveTo函数执行TcxTreeList后更新节点的索引
EN

Stack Overflow用户
提问于 2014-11-21 11:30:31
回答 1查看 819关注 0票数 0

我想要实现的是,用户可以通过单击“向上”和“向下”按钮重新排序节点。这是我的密码。

代码语言:javascript
复制
 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;       

难怪这段代码运行良好。我可以看到节点在上下移动。但似乎他们的指数在移动后并没有更新。

测试代码:

代码语言:javascript
复制
for i:=0 to cxTreeList1.count -1 do begin
   showmessage(cxTreeList1.nodes[i].values[0]);
end;

结果:苹果,香蕉,糖果,钻石,大象

单击“向上”和“向下”按钮超过100次。

结果:苹果,香蕉,糖果,钻石,大象

如我所料

大象,香蕉,糖果,钻石,苹果(因为我重新订购了节点)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-21 11:52:21

你指的是Developer Express TcxTreelist,是吗?

我问的原因是,如果我尝试您的代码,编译器会将“节点”作为一个未知的标识符,所以我不清楚您是如何使代码编译,更不用说运行了。但是,使用Devex的TcxTreelist,下面的代码按照当前显示的顺序正确地列出了树项(即单击Up按钮后在treelist中看到的内容,比如'Banana'),而不是显示在IDE项目编辑器中的原始顺序。请注意,这使用treelist的Item属性,而不是它的“节点”:

代码语言:javascript
复制
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;

顺便说一句,关于Q标题中的要点:我认为,您认为节点的Index属性需要更新的假设是错误的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27060362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档