以编程方式滚动 THorzScrollBox Firemonkey XE6

Fil*_*ins 2 delphi scroll tscrollbox firemonkey delphi-xe6

我有一个THorzScrollBoxin a form,还有一些TStyledControlsinside。每个StyledControl都有一个Tag识别。使用的TEdit通知的值,我能找到里面ScrollBox的具体Controltag

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

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

Fil*_*ins 5

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

sbItems.ScrollBy(-10, 0); // this will scroll to right
Run Code Online (Sandbox Code Playgroud)

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

sbItems.ScrollBy(10, 0); // this will scroll to left
Run Code Online (Sandbox Code Playgroud)

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