以编程方式滚动 THorzScrollBox Firemonkey XE6

Scrolling Programmatically THorzScrollBox Firemonkey XE6

我有一个 THorzScrollBox 的表格,还有一些 TStyledControls 的表格。每个StyledControl都有一个Tag来标识。使用 TEdit 来通知一个值,我可以在 ScrollBox 中找到一个特定的 Control 通过他的 tag.

如果我搜索的 control 不在屏幕上,我想滚动 ScrollBox 来显示它。

如何以编程方式执行此操作?

我找到了一种方法来做到这一点。 我必须使用 ScrollBy。但细节是,如果我想向右滚动控件,我必须使用负值。 示例:

sbItems.ScrollBy(-10, 0); // this will scroll to right

如果我使用正值,它会向左滚动。

sbItems.ScrollBy(10, 0); // this will scroll to left

关键是,如果你滚动一次,ViewportPosition会改变,下次你执行ScrollBy时,它不会重置滚动位置,它会从你已经滚动的点开始滚动已滚动。