gpt4 book ai didi

delphi - 如何在不捕获控件焦点的情况下滚动 Firemonkey TListBox?

转载 作者:行者123 更新时间:2023-12-05 07:40:19 25 4
gpt4 key购买 nike

我有一个TListBox,每个项目都有控件,例如TEditTComboBoxTSwitch等, 右对齐。此列表中有大约 20 项,因此它超出了屏幕,因此用户需要滚动(通过滑动手指)才能到达底部。

问题是,即使是快速手势,如果用户最初在其中一个控件上滑动手指,该控件会获得焦点并且列表不会滚动。目前,向上或向下滚动的唯一方法是在列表左侧滑动手指,那里没有任何控件。我可以禁用HitTestCanFocus,但是即使用户想要,该控件也永远不会获得焦点实际上点击它。

如何允许用户在这些控件上向上或向下滑动以滚动列表,而控件不会获得焦点?

最佳答案

我遇到了同样的问题。

为了使用 TListBox 解决这个问题,我使用了一个内部有布局的 TVertScrollBox。

每个控件都与顶部对齐,为了使其正常工作,我需要一个 VKVertScrollBox 来自: https://github.com/DelphiWorlds/KastriFree/tree/master/Demos/VKVertScrollbox

这样做,您将获得一个可滚动的组件列表,您可以在其中向下滑动手指并看到它在移动。

此外,为了避免在滑动时在每个组件上输入和获取焦点,您可以在每个组件上使用一个帮助器来通过覆盖 MouseDown、MouseMove 和 MouseUp 来捕捉移动,并防止在移动时输入覆盖 doEnter(也被覆盖)(被捕获)在 MouseMove 方法上)。

关于delphi - 如何在不捕获控件焦点的情况下滚动 Firemonkey TListBox?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46243737/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com