我正在使用父FMX.Layouts.TScrollBox缩放和平移子TLayout。一旦TLayout变得比TScrollBox大,就可以进行平移。
我想要TScrollBox的(左上方)位置。
浏览TScrollBox和TLayout这两个属性,找不到适合我的位置(尝试了很多)。还有其他方法可以做到,但是对我来说似乎是标准的,应该将它包括在基类中。
PS:对于平移,我使用TScrollBox.AniCalculations,但我认为这并不重要/没有帮助。
最佳答案
要读取位置,请使用ViewportPosition
的TScrollBox
属性。这是一个TPointF
,描述为:
滚动视口原点的坐标,指定为相对于此滚动框内容布局的原点的偏移量。
是documented here
如果在平移过程中需要一个事件,请使用OnViewportPositionChange()
类型的TPositionChangeEvent()
事件
它没有正确记录,但声明为:
TPositionChangeEvent = procedure (Sender: TObject;
const OldViewportPosition, NewViewportPosition: TPointF;
const ContentSizeChanged: Boolean) of object;
应该很自我解释
或者
OnHScrollChange()
和/或OnVScrollChange()
类型为TNotifyEvent