有一个结构和一个数组如下:
TMyRec = packed record
F1: Integer;
F2: array[0..10] of char;
F3: Byte;
F4: array[0..5] of char;
end;MyArr: array of TMyRec;我现在把数组的内容显示到一个listview中,这个listview有四列,分别对应结构中的四个字段,第一列对应F1,第二列对应F2,第三列对应F3,第四列对应F4。
现在我要点击Listview的各列来进行排序,例如我先点第一列,则按照F1来排序,然后我再点第四列,这时要在按照F1排序的基础上再按F4来排序。
效果如下:
初始状态:
F1 F2 F3 F4
3 a 3 W
3 f 7 D
5 e 9 A点第一列按F1排序后:
F1 F2 F3 F4
3 a 3 W
3 f 7 D
5 e 9 A点第四列,在按F1排序的基础上再按F4排序:
F1 F2 F3 F4
3 f 7 D
3 a 3 W
5 e 9 A请问怎样才能实现这样的功能呢?
TMyRec = packed record
F1: Integer;
F2: array[0..10] of char;
F3: Byte;
F4: array[0..5] of char;
end;MyArr: array of TMyRec;我现在把数组的内容显示到一个listview中,这个listview有四列,分别对应结构中的四个字段,第一列对应F1,第二列对应F2,第三列对应F3,第四列对应F4。
现在我要点击Listview的各列来进行排序,例如我先点第一列,则按照F1来排序,然后我再点第四列,这时要在按照F1排序的基础上再按F4来排序。
效果如下:
初始状态:
F1 F2 F3 F4
3 a 3 W
3 f 7 D
5 e 9 A点第一列按F1排序后:
F1 F2 F3 F4
3 a 3 W
3 f 7 D
5 e 9 A点第四列,在按F1排序的基础上再按F4排序:
F1 F2 F3 F4
3 f 7 D
3 a 3 W
5 e 9 A请问怎样才能实现这样的功能呢?
解决方案 »
- 多线程同步 CS : TCriticalSection; 定义放在哪里?
- ---[散分]---庆祝今天登录CSDN,注销再登录N次,验证码都是88888
- 请问,Delphi编译的程序能不能在WinCE下干活???
- delph中DBLookupComboboxEh数据清空的问题
- Pagecontral 做窗口界面占内存多,耗资源?
- 写出来的程序怎样自动适应屏幕大小和系统?
- 有人有现成的物业管理 请发至[email protected]
- delphi中使用cport接收中文乱码求助
- 两个日期相减,结果为天数,怎样设置?
- 中文的打印输出
- 新手问一个Delphi中树节点的问题
- opendialog 中添加选项
排序算法我的博客中有好多,给你个链接排序算法演示我博客中给的例子刚好也是对数组进行排序,只不过我给的是整形数组,你只要把数组的基础类型改成你的,然后再把比较函数改改就行了,其他的都不用动。
function CompareData(Data1, Data2: PData;
Index1, Index2: Integer): Integer; virtual; //比较
就是这个函数,呵呵
F1 F2 F3 F4
3 a 3 W
3 f 7 D
5 e 9 A点第四列,在按F1排序的基础上再按F4排序:
F1 F2 F3 F4
3 f 7 D
3 a 3 W
5 e 9 A