3

我正在尝试制作一个最初在其中加载 15 个 TListBoxItems 的 TListBox,并且每次您一直滚动到 TListBoxItem 的底部时,都会再添加 15 个 TListBoxItems。在 Delphi XE8 的 firemonkey 多设备项目中。

现在我不知道如何知道用户是否在 TListBox 中一直向下滚动。我已经尝试过 TListBox 的每个事件,但似乎没有一个能做到。

4

2 回答 2

3

我认为你需要稍微横向一点。与其考虑用户何时滚动到列表底部,不如考虑列表中的最后一项何时可见,即 ListBox.ListItems[ ListBox.ListItems 的 IsVisible 属性何时可见。计数 - 1].IsVisible 为 TRUE。

这仅在用户滚动到列表底部时才变为 TRUE!

您可以使用手势管理器或简单的计时器来测试状态。

于 2015-06-12T13:20:36.777 回答
1

如果平台是 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;
于 2015-06-12T12:23:31.570 回答