我有一个TList.它包含相同类型的对象的集合.这些对象来自TPersistent,并且具有大约50种不同的已发布属性.
在我的应用程序中,用户可以搜索这些对象,搜索结果显示在TDrawGrid中,显示的特定列基于搜索的属性.例如,如果用户搜索"发票",则"结果"网格中会显示"发票"列.我希望能够让用户对此网格进行排序.当然,踢球者是我不知道网格中的列是什么.
通常,为了对TList进行排序,我只需要创建一个函数,例如SortOnName( p1, p2),并调用TList的sort()方法.我想更进一步,找到一种方法将属性名称传递给sort方法,并使用RTTI进行比较.
当然,我可以制作50种不同的排序方法并使用它.或者,全局设置一个变量,或者作为完成所有这些工作的类的一部分,以向排序方法指示要排序的内容.但我很好奇是否有任何Delphi专业人士对如何实现这一点有其他想法.