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

前端之家收集整理的这篇文章主要介绍了delphi – 如何在TListView列上显示排序箭头?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Windows资源管理器有一个箭头,指示列表视图(在报表视图样式中)哪个列按哪个方向排序(ASC与DESC).

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

解决方法

这里有一些简单的代码标题标记为升序排序:
  1. uses
  2. Winapi.CommCtrl;
  3.  
  4. var
  5. Header: HWND;
  6. Item: THDItem;
  7. begin
  8. Header := ListView_GetHeader(ListView1.Handle);
  9. ZeroMemory(@Item,SizeOf(Item));
  10. Item.Mask := HDI_FORMAT;
  11. Header_GetItem(Header,Item);
  12. Item.fmt := Item.fmt and not (HDF_SORTUP or HDF_SORTDOWN);//remove both flags
  13. Item.fmt := Item.fmt or HDF_SORTUP;//include the sort ascending flag
  14. Header_SetItem(Header,Item);
  15. end;

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

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

猜你在找的Delphi相关文章