Firemonkey TVertScrollBox 替代 VCL ScrollBox ScrollInView
Firemonkey TVertScrollBox alternative to VCL ScrollBox ScrollInView
我正在使用 Delphi XE8 开发一个 Android 应用程序,我想在单击按钮时移动 VertScrollBox 的 ViewportPosition,以查看特定组件(VertScrollBox 中的某处) ).
但是设置 ViewportPosition 的值不起作用(我在这里尝试了答案:Go Top a TVertScrollBox) and the method ScrollBy does not work neither (http://docwiki.embarcadero.com/Libraries/Seattle/en/FMX.Layouts.TVertScrollBox)。
我试过了:
procedure TFormTournee.T3ButtonBackToTopClick(Sender: TObject);
begin
T1VertScrollBox.ViewportPosition := PointF(T1VertScrollBox.ViewportPosition.X, 0);
T1VertScrollBox.RealignContent;
end;
还有那个:
procedure TFormTournee.T3ButtonBackToTopClick(Sender: TObject);
begin
T1VertScrollBox.ScrollBy(0,-100);
T1VertScrollBox.RealignContent;
end;
目前,我只是尝试了 Windows(我必须解决 Android 上关于存储空间不足的另一个问题),但是当我点击时没有任何变化,它应该可以正常工作在 Windows 和 Android 上也一样,不是吗?那么有人可以帮助我吗?或者解释一下我做错了什么?谢谢!
因此,如果有人试图在 TVertScrollBox 中使用 ScrollBy 或 ViewportPosition 编写滚动程序,但如果它不起作用,@loki 在评论中的 link 指的是替代方法Windows 和 Android(我不能试穿 iOS,但它应该也能工作)(https://svn.code.sf.net/p/alcinoe/code/)。我不得不做一些调整,因为我在 Delphi XE8 上工作,但它真的很快。
在该过程中,单击按钮将 VertScrollBox 定位在组件面板上:
procedure TFormTournee.ButtonClick(Sender: TObject);
begin
// The position is placed at the top
ALVertScrollBox1.ScrollBy(0, ALVertScrollBox.Width);
// And then it go down to the panel position
ALVertScrollBox1.ScrollBy(0, -Panel.Position.Y);
end;
再次感谢@loki!
我正在使用 Delphi XE8 开发一个 Android 应用程序,我想在单击按钮时移动 VertScrollBox 的 ViewportPosition,以查看特定组件(VertScrollBox 中的某处) ).
但是设置 ViewportPosition 的值不起作用(我在这里尝试了答案:Go Top a TVertScrollBox) and the method ScrollBy does not work neither (http://docwiki.embarcadero.com/Libraries/Seattle/en/FMX.Layouts.TVertScrollBox)。
我试过了:
procedure TFormTournee.T3ButtonBackToTopClick(Sender: TObject);
begin
T1VertScrollBox.ViewportPosition := PointF(T1VertScrollBox.ViewportPosition.X, 0);
T1VertScrollBox.RealignContent;
end;
还有那个:
procedure TFormTournee.T3ButtonBackToTopClick(Sender: TObject);
begin
T1VertScrollBox.ScrollBy(0,-100);
T1VertScrollBox.RealignContent;
end;
目前,我只是尝试了 Windows(我必须解决 Android 上关于存储空间不足的另一个问题),但是当我点击时没有任何变化,它应该可以正常工作在 Windows 和 Android 上也一样,不是吗?那么有人可以帮助我吗?或者解释一下我做错了什么?谢谢!
因此,如果有人试图在 TVertScrollBox 中使用 ScrollBy 或 ViewportPosition 编写滚动程序,但如果它不起作用,@loki 在评论中的 link 指的是替代方法Windows 和 Android(我不能试穿 iOS,但它应该也能工作)(https://svn.code.sf.net/p/alcinoe/code/)。我不得不做一些调整,因为我在 Delphi XE8 上工作,但它真的很快。
在该过程中,单击按钮将 VertScrollBox 定位在组件面板上:
procedure TFormTournee.ButtonClick(Sender: TObject);
begin
// The position is placed at the top
ALVertScrollBox1.ScrollBy(0, ALVertScrollBox.Width);
// And then it go down to the panel position
ALVertScrollBox1.ScrollBy(0, -Panel.Position.Y);
end;
再次感谢@loki!