加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 如何在TListView列上显示排序箭头?

发布时间:2020-12-15 10:04:23 所属栏目:大数据 来源:网络整理
导读:Windows资源管理器有一个箭头,指示列表视图(在报表视图样式中)哪个列按哪个方向排序(ASC与DESC). 是否可以在Delphi中的TListView上显示这样的排序指示箭头? 解决方法 这里有一些简单的代码将标题列标记为升序排序: uses Winapi.CommCtrl;var Header: HWND;
Windows资源管理器有一个箭头,指示列表视图(在报表视图样式中)哪个列按哪个方向排序(ASC与DESC).

是否可以在Delphi中的TListView上显示这样的排序指示箭头?

解决方法

这里有一些简单的代码将标题列标记为升序排序:
uses
  Winapi.CommCtrl;

var
  Header: HWND;
  Item: THDItem;
begin
  Header := ListView_GetHeader(ListView1.Handle);
  ZeroMemory(@Item,SizeOf(Item));
  Item.Mask := HDI_FORMAT;
  Header_GetItem(Header,Item);
  Item.fmt := Item.fmt and not (HDF_SORTUP or HDF_SORTDOWN);//remove both flags
  Item.fmt := Item.fmt or HDF_SORTUP;//include the sort ascending flag
  Header_SetItem(Header,Item);
end;

为简单起见,我省略了错误检查.如果你想要相反方向的箭头,我相信你可以找出如何交换逻辑.

关键MSDN主题是HDITEM结构的主题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读