如何使用一个命令将滚动条手柄发送到最顶部位置?

use*_*348 2 delphi scroll scrollbar delphi-10.1-berlin

通过向控件发送REPEATEDLY消息,可以轻松地将控件的滚动条从最底部位置发送到最顶部位置WM_VSCROLL:

ScrollBox1.Perform(WM_VSCROLL, MakeWParam(SB_PAGEUP, 0), 0);
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

但这需要知道有多少次我必须将消息发送到控件以将滚动条设置到最高位置,具体取决于滚动条手柄相对于滚动条高度的比例大小.或者,我可以重复发送消息一段不合理的时间,这似乎不是最好的解决方案.

那么如何使用ONE SINGLE命令将滚动条发送到顶部,与滚动条高度的滚动条夹点的比例大小无关?

LU *_* RD 8

要将栏滚动到顶部:

ScrollBox1.VertScrollBar.Position := 0;
Run Code Online (Sandbox Code Playgroud)

请参阅Vcl.Forms.TControlScrollBar.Position


或者使用Windows API WM_VSCROLL消息:

滚动到顶部:

ScrollBox1.Perform( WM_VSCROLL, MakeWParam(SB_Top,0),0);
Run Code Online (Sandbox Code Playgroud)

滚动到底部:

ScrollBox1.Perform( WM_VSCROLL, MakeWParam(SB_Bottom,0),0);
Run Code Online (Sandbox Code Playgroud)