FMX用AniCalculations控制基类为TScrollBox的控件是否(滑动)滚动的公共单元
适用组件:TScrollBox、TVertScrollBox、THorzScrollBox、TPresentedScrollBox、TFramedScrollBox、TFramedVertScrollBox、TMemo、TListBox、TListView
function IfScrolling(
ACanScrollControl:TCustomScrollBox;
Scrolling:Boolean):Boolean;
begin
if Scrolling=false then
begin
ACanScrollControl.AniCalculations.BeginUpdate;
ACanScrollControl.AniCalculations.Animation:=false;
ACanScrollControl.AniCalculations.BoundsAnimation:=false;
ACanScrollControl.AniCalculations.TouchTracking:=[];
ACanScrollControl.AniCalculations.EndUpdate;
Result:=false;
end else
begin
ACanScrollControl.AniCalculations.BeginUpdate;
ACanScrollControl.AniCalculations.Animation:=true;
ACanScrollControl.AniCalculations.BoundsAnimation:=true;
ACanScrollControl.AniCalculations.TouchTracking:=[ttVertical, ttHorizontal];
ACanScrollControl.AniCalculations.EndUpdate;
Result:=true;
end;
end;
function IfScrolling(
ACanScrollControl:TCustomScrollBox;
Scrolling:Boolean):Boolean;
begin
if Scrolling=false then
begin
ACanScrollControl.AniCalculations.BeginUpdate;
ACanScrollControl.AniCalculations.Animation:=false;
ACanScrollControl.AniCalculations.BoundsAnimation:=false;
ACanScrollControl.AniCalculations.TouchTracking:=[];
ACanScrollControl.AniCalculations.EndUpdate;
Result:=false;
end else
begin
ACanScrollControl.AniCalculations.BeginUpdate;
ACanScrollControl.AniCalculations.Animation:=true;
ACanScrollControl.AniCalculations.BoundsAnimation:=true;
ACanScrollControl.AniCalculations.TouchTracking:=[ttVertical, ttHorizontal];
ACanScrollControl.AniCalculations.EndUpdate;
Result:=true;
end;
end;

本文介绍了一个FMX框架中用于控制多种滚动控件(如TScrollBox、TMemo等)滚动动画效果的实用函数IfScrolling。通过调整AniCalculations属性,可以实现滚动时的动画开启与关闭,适用于需要精细控制用户交互体验的场景。
848

被折叠的 条评论
为什么被折叠?



