因为最近公司要做一个内Q,(内部使用的)
将所有人员加载到了TreeView上,现在要做的事根据item里的data来排序,如IsOnLine=0的排序前,然后是=1的,最后是=2的这样,但是部门的节点不变
我现在只知道可以用SortType属性来排,里面有四个可选属性,分别是:StNone,StText,StData,StBoth
应该是可以根据节点里的指针变化来排的,可是我不懂,所以在这里请教各位朋友了。
请不吝赐教,谢谢。
将所有人员加载到了TreeView上,现在要做的事根据item里的data来排序,如IsOnLine=0的排序前,然后是=1的,最后是=2的这样,但是部门的节点不变
我现在只知道可以用SortType属性来排,里面有四个可选属性,分别是:StNone,StText,StData,StBoth
应该是可以根据节点里的指针变化来排的,可是我不懂,所以在这里请教各位朋友了。
请不吝赐教,谢谢。
解决方案 »
- FastReport 4 VCL Enterprise Edition: 4.12.6
- delphi下sql server 多关键字(用空格分开)查询,有点人工智能的意思了。
- 请问哪位有或做过心电图控件?
- IdUDPClient 的问题!!谢谢大家
- 恢复事务的问题
- 如何将程序中统计后的数据显示在FastReport的报表中
- SOS最后一个问题,这个问题很难啊,可我明天就要交了,那位高手能解决,重谢
- 如何利用Edit的keyup事件对Edit进行输入控制。
- 过滤问题?????
- 如何安装TSimpleGraph v2.91?
- 当delphi窗体大小改变时,其他控件的大小如何同步改变大小呢
- DBGridEh的ftLookUp列的相关问题。
需要重排的时候,重新建树。
这样比较简单。组织好你的SQL语句即可。
这也是一种方按吧,但是如果装了DEV控件的话就直接用DBTREELIST控件就好了,,只要绑定数据源,可以任意排序,而且不用加代码的情况下
Compare := CompareText(Node1.text, Node2.text);另外SortType是配合OnCompare使用的,StNone,StText,StData,StBoth各表示
StNone不改变顺序
StText当Node的Text属性发生变化时,调用OnCompare重新排序
StData当Node的Data属性发生变化时(必须是改变指针指向),调用OnCompare重新排序
StBoth当Node的Text或Data属性发生变化时,调用OnCompare重新排序
加上楼上的朋友说用SQL来处理,这我想只能处理父节点的先后顺序,不能处理子节点的先后顺序吧
而且我不能每时每刻去查数据库谁谁上线了.
现在是用TLIST来处理的.
所以DBTREE是不实际的.