delphi – 如何计算用户在TListView中滚动的距离,而不是在用户滚
我有一个TListView,其中包含一些显示工具提示的专门区域.因为我不能通过设计在TListView上定义特定区域来显示每个Subitem以上的工具提示.
所以我已经创建了一个结构,其中包含它们的位置以及工具提示(提示).这部分工作正常.但是,这些位置在TListView中相对于其顶部,因此一旦用户滚动,MousePos仍然引用TListView的完全可见,无论TListView滚动到何处. 那讲得通;但是我想在Y坐标中添加用户向下滚动的距离. (我也想对X坐标做同样的事情,但这不太相关.)但据我所知,A)TListView上没有机制可以检测到这一点而且B)大多数指南都在讨论TListView和滚动指的是捕获正在发生的滚动,而不是在我的情况下,在不同的事件期间(在这种情况下,在鼠标移动时). 那么我如何检测或计算用户在滚动事件中滚动的距离呢? 解决方法
有一种机制:ListView.ViewOrigin.
var Pt: TPoint; begin Pt := ListView1.ViewOrigin; 仅当您的列表视图采用vsIcon或vsSmallIcon视图样式时,此方法才有效. (您似乎没有提到您正在使用的视图样式).不过在这里进行一个简单的测试,看起来它也适用于vsReport风格. ViewOrigin.Y给出了aGetScrollInfo调用检索到的TScrollInfo的’nPos’的完全相同的值. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |