如何实现点击ListView的某一列,就按该列排列记录顺序?

wzrlover 2002-03-11 11:13:23
如何实现点击ListView的某一列,就按该列排列记录顺序?
ViewStyle:=VSReport
...全文
59 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhaojin1975 2002-03-12
  • 打赏
  • 举报
回复
下面是例程,wisure说的对

var ColumnToSort: Integer;

The OnColumnClick event handler sets the global variable to indicate the column to sort and calls AlphaSort:

procedure TForm1.ListView1ColumnClick(Sender: TObject; Column: TListColumn);

begin
ColumnToSort := Column.Index;
(Sender as TCustomListView).AlphaSort;
end;


The OnCompare event handler causes the list view to sort on the selected column:

procedure TForm1.ListView1Compare(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;
lixif 2002-03-12
  • 打赏
  • 举报
回复
去 www.netgocn.com 有全部源代码下载!
zhaojin1975 2002-03-11
  • 打赏
  • 举报
回复
去看一下Delpi帮助中的AlphaSort的例子,你就会明白了
wzrlover 2002-03-11
  • 打赏
  • 举报
回复
up!
wisure 2002-03-11
  • 打赏
  • 举报
回复
根据
ColumnClick(Sender: TObject; Column: TListColumn);
这个事件的colnum.index来判断是第几列click

然后在OnCompare(Sender: TObject; Item1, Item2: TListItem; Data: Integer; var Compare: Integer);事件中比较就可以了
wzrlover 2002-03-11
  • 打赏
  • 举报
回复
AlphaSort好象只能根据listview的Caption来排列记录次序
我想要实现点击ListView的相应的列,记录数据会根据该列排列顺序
该怎么做?

5,930

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧