Delphi FMX:通过更改ViewportSize来设置滚动条拇指大小可减少最大可设置值

Delphi FMX:通过更改ViewportSize来设置滚动条拇指大小可减少最大可设置值,delphi,firemonkey,Delphi,Firemonkey,在FMX中将TScrollBar添加到表单中,并将最小值和最大值保留为默认值0和100。将ViewportSize设置为50。这使拇指的长度为滚动条长度的一半。但是,滚动条的值现在只能设置在0和50之间。看起来最大的可设置值是Max-ViewportSize。如何设置拇指大小,同时仍能设置介于0和最大值之间的值?我知道我可以将Max设置为150(Max+ViewportSize),但我已经在代码中使用Max来确定最大可设置值 我注意到,文档根本没有帮助。它没有提到这个问题,并且错误地表示View

在FMX中将TScrollBar添加到表单中,并将最小值和最大值保留为默认值0和100。将ViewportSize设置为50。这使拇指的长度为滚动条长度的一半。但是,滚动条的值现在只能设置在0和50之间。看起来最大的可设置值是Max-ViewportSize。如何设置拇指大小,同时仍能设置介于0和最大值之间的值?我知道我可以将Max设置为150(Max+ViewportSize),但我已经在代码中使用Max来确定最大可设置值

我注意到,文档根本没有帮助。它没有提到这个问题,并且错误地表示ViewportSize是以像素为单位的。

我不知道,但我认为逻辑是这样的:如果您的可滚动区域高100,视口大小高50,那么您只需要滚动50,就可以从看到顶部50(可滚动区域)移动到底部50,不是吗?为什么要将可滚动区域的下边框滚动到视口的顶部?我不希望拇指的底部移动到区域的顶部,但我希望通过减小分区,值仍在最小值和最大值之间。当视口大小为0时,拇指大小不是0。我真的在寻找一种在不改变视口大小的情况下增加该大小的方法,因为它似乎不符合我的要求。我现在通过设置ViewportSize,然后在以前使用Max的地方使用Max-ViewportSize解决了我的问题。然而,我仍然有兴趣知道是否可以在不设置ViewportSize的情况下更改拇指大小。也许是通过改变滚动条的样式?我想你误解了正在发生的事情。如果可滚动区域的高度为100,并且将视口大小设置为50,则只能滚动50(因为50始终可见)。这意味着最大值是50-你没有地方可以超出这个范围。谢谢Ken。我想我现在看到了视口的大小。我的问题是如何将代码从VCL移植到FMX。在VCL中,您可以使用PageSize设置拇指大小,它不会影响可滚动范围。在VCL中,当我希望拇指随着最大值的变化而改变大小时,我将PageSize设置为1。要在FMX中执行同样的操作,我必须将ViewportSize设置为1,但同时将Max增加1。没有页面大小的等价物。