我正在尝试制作一个最初在其中加载 15 个 TListBoxItems 的 TListBox,并且每次您一直滚动到 TListBoxItem 的底部时,都会再添加 15 个 TListBoxItems。在 Delphi XE8 的 firemonkey 多设备项目中。
现在我不知道如何知道用户是否在 TListBox 中一直向下滚动。我已经尝试过 TListBox 的每个事件,但似乎没有一个能做到。
我正在尝试制作一个最初在其中加载 15 个 TListBoxItems 的 TListBox,并且每次您一直滚动到 TListBoxItem 的底部时,都会再添加 15 个 TListBoxItems。在 Delphi XE8 的 firemonkey 多设备项目中。
现在我不知道如何知道用户是否在 TListBox 中一直向下滚动。我已经尝试过 TListBox 的每个事件,但似乎没有一个能做到。
我认为你需要稍微横向一点。与其考虑用户何时滚动到列表底部,不如考虑列表中的最后一项何时可见,即 ListBox.ListItems[ ListBox.ListItems 的 IsVisible 属性何时可见。计数 - 1].IsVisible 为 TRUE。
这仅在用户滚动到列表底部时才变为 TRUE!
您可以使用手势管理器或简单的计时器来测试状态。
如果平台是 Windows,你可以尝试这样的事情
var
i: Integer;
x:Double;
Begin
x := ListBox1.Height / ListBox1.ItemHeight;
i := GetScrollPos(ListBox1.Handle, SB_VERT);
if i + x >= ListBox1.Items.Count then
ShowMessage('It is at the end of scroll');
End;