平移时如何获取 TScrollBox 在 TLayout 中的位置?
How can I get the position of TScrollBox in TLayout while panning?
我正在使用父 FMX.Layouts.TScrollBox 来缩放和平移子 TLayout。一旦 TLayout 大于 TScrollBox,就可以进行平移。
我想要 TScrollBox 的(左上)位置 。
查看 TScrollBox 和 TLayout 属性我找不到适合我的位置(尝试了很多)。还有其他方法可以做到这一点,但对我来说这似乎是标准的并且应该(?)包含在基础 class.
中
PS:对于平移我使用 TScrollBox.AniCalculations 但我不认为 matters/helps.
要读取位置,请使用 TScrollBox
的 ViewportPosition
属性。这是一个 TPointF
,描述为:
Coordinates of the origin of the scrolling viewport specified as the offset from the origin of the content layout of this scroll box.
如果在平移过程中需要事件,请使用类型为 TPositionChangeEvent()
的 OnViewportPositionChange()
事件
它没有正确记录,但声明为:
TPositionChangeEvent = procedure (Sender: TObject;
const OldViewportPosition, NewViewportPosition: TPointF;
const ContentSizeChanged: Boolean) of object;
应该很清楚
或者 OnHScrollChange()
and/or OnVScrollChange()
类型 TNotifyEvent
我正在使用父 FMX.Layouts.TScrollBox 来缩放和平移子 TLayout。一旦 TLayout 大于 TScrollBox,就可以进行平移。
我想要 TScrollBox 的(左上)位置
查看 TScrollBox 和 TLayout 属性我找不到适合我的位置(尝试了很多)。还有其他方法可以做到这一点,但对我来说这似乎是标准的并且应该(?)包含在基础 class.
中PS:对于平移我使用 TScrollBox.AniCalculations 但我不认为 matters/helps.
要读取位置,请使用 TScrollBox
的 ViewportPosition
属性。这是一个 TPointF
,描述为:
Coordinates of the origin of the scrolling viewport specified as the offset from the origin of the content layout of this scroll box.
如果在平移过程中需要事件,请使用类型为 TPositionChangeEvent()
的 OnViewportPositionChange()
事件
它没有正确记录,但声明为:
TPositionChangeEvent = procedure (Sender: TObject;
const OldViewportPosition, NewViewportPosition: TPointF;
const ContentSizeChanged: Boolean) of object;
应该很清楚
或者 OnHScrollChange()
and/or OnVScrollChange()
类型 TNotifyEvent