我的应用程序中有一个TVirtualTreeview(仍然基于D2007),它将RootNodeCount设置为所需的值,在OnInitNode事件中,我将一个Object分配给节点,否则该节点存储在我的业务逻辑类的TObjectList中。该对象取自业务逻辑类,由Nopde的ID作为TObjectList的索引。
现在我向VST添加了排序功能,例如,它意味着将比较方法添加到我的业务逻辑类,该类将连接到OnCompareNodes事件传递的两个节点的对象。到目前为止,VST本身就很好了。
因为我希望业务逻辑具有与打印或导出数据相同的排序,并且应该以与显示相同的方式进行排序我认为我会使用TObjectList的.exchange方法并简单地给出它传递给OnCompareNodes的两个节点的ID。
失败了。我得到的输出和调试器支持这是完全不同的。我对可能的原因感到很困惑。 当然,我可以分别在我的业务逻辑类中实现TObjectList的排序,并在OnHeaderClick事件的末尾应用它,但这是我想要避免的额外努力。
关于我可能做错什么或我错在哪里的任何想法?
答案 0 :(得分:0)
好的,答案是业务逻辑管理所有内容,GetText等中的VST通过Node.Index直接从bussines逻辑中获取所需数据。然后业务逻辑可以根据需要进行排序。