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