困扰几天的排序问题 5个按纽对应ListView里面的5个列````点击按纽实现对应列的排序````` 这个该怎么实现`````` Delphi帮助里面只有实现一个列的排序问题````我按照上面的写的代码可以实现排序```但是都是实现一个的排序````点了一个按纽实现一列的排序之后```其他4个按纽点击就实现不了了````` 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 对缓冲数据进行对应列排序 排序好之后ListView重新加载数据 NO ,只想实现单列排序````比如: 1按姓名排列就按姓的字母排列可以由A~Z也可以Z~A```3按年龄排列就按年龄由大到小排列也可以由小到大排列 procedure TForm1.lv1ColumnClick(Sender: TObject; Column: TListColumnbegin ColumnToSort := Column.Index; (Sender as TCustomListView).AlphaSort;end;procedure TForm1.lv1Compare(Sender: TObject; Item1, Item2: TListItem; Data: Integer; var Compare: Integer);var ix: Integer;begin if ColumnToSort = 0 then Compare := CompareText(Item1.Caption,Item2.Caption) else begin ix := ColumnToSort - 1; Compare := CompareText(Item1.SubItems[ix],Item2.SubItems[ix]); end;end;感觉不需要重写吧````我用上面的Delphi帮助里面的代码能够实现排序```但必须点击ListView里面的ColumnHeaders```但我是要把ColumnHeaders隐藏了的`````想用其他能显示图片的 按纽来代替点击ColumnHeaders的排序功能````` 其实楼主没必要把ColumnHeaders隐藏掉,只须在每表中加载个小图片就可以达到目的了,顺序排序时用一种图标,倒序排序再换一种图标。 真正引起排序动作的是 ListView 的 AlphaSort 函数,和是否点击ListView的列头没有关系啊你完全可以在按钮的点击事件中写 ListView1.AlphaSort;然后在ListView的OnCompare事件中,按照帮助给你提高的代码进行排序处理 你只需要把上面代码中 OnColumnClick 中的代码放入每个按钮的点击事件中,而在按钮的点击事件中,把 ColumnToSort 变量的值设置成固定值,比如,第一个按钮中 ColumnToSort 的值是0,第二个按钮中, ColumnToSort 的值是1,第三个按钮中 ColumnToSort 的值是2... 依此类推,就可以了OnCompare 的代码完全不用修改 delphi 自定义控件EDIT内容改变事件 目前安全性高的加密解密算法或控件是什么? 请教一个断承问题 如果用findwindow找另一程序窗口中的一控件的HANDLE? GetDate()的问题,大家帮帮忙 怎样控制toolbar的自动生成菜单快捷键的问题 用Delphi怎样才能写出象Foxmail一样的表单调用。 shr 是什么意思? 蛮急的一个问题,IntelBase的刷新 谁能给我一点Delphi中关于Socket编程的资料 请问这个问题该怎么解决啊??? cxgrid 合计 怎么让录入时立即更新合计数
NO ,只想实现单列排序````比如: 1按姓名排列就按姓的字母排列可以由A~Z也可以Z~A```3按年龄排列就按年龄由大到小排列也可以由小到大排列
begin
ColumnToSort := Column.Index;
(Sender as TCustomListView).AlphaSort;
end;
procedure TForm1.lv1Compare(Sender: TObject; Item1, Item2: TListItem;
Data: Integer; var Compare: Integer);
var
ix: Integer;
begin
if ColumnToSort = 0 then
Compare := CompareText(Item1.Caption,Item2.Caption)
else
begin
ix := ColumnToSort - 1;
Compare := CompareText(Item1.SubItems[ix],Item2.SubItems[ix]);
end;
end;感觉不需要重写吧````我用上面的Delphi帮助里面的代码能够实现排序```但必须点击ListView里面的ColumnHeaders```但我是要把ColumnHeaders隐藏了的`````想用其他能显示图片的 按纽来代替点击ColumnHeaders的排序功能`````
你完全可以在按钮的点击事件中写
ListView1.AlphaSort;
然后在ListView的OnCompare事件中,按照帮助给你提高的代码进行排序处理
你只需要把上面代码中 OnColumnClick 中的代码放入每个按钮的点击事件中,
而在按钮的点击事件中,把 ColumnToSort 变量的值设置成固定值,比如,第一个按钮中 ColumnToSort 的值是0,第二个按钮中, ColumnToSort 的值是1,第三个按钮中 ColumnToSort 的值是2... 依此类推,
就可以了
OnCompare 的代码完全不用修改