[修正] Firemonkey TSelection 控件等比缩放时,左下角拉动问题

Posted 龟山Aone

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[修正] Firemonkey TSelection 控件等比缩放时,左下角拉动问题相关的知识,希望对你有一定的参考价值。

说明:TSelection 控件,当在属性 Proportional = True 为等比缩放时,拉动左下角,右上角会跟着移动。

适用:Berlin 10.1.1 (或之前版本) Firemonkey

修正方法:

请将源码 FMX.Objects.pas 复制到自己的工程目录里,再进行修改。

procedure TSelection.GetTransformLeftBottom(AX, AY: Single; var NewSize: TPointF; var Pivot: TPointF);

...略...

{---> AY := AY + LCorrect.Y; // 删除代码
{+++>}AY := AY - LCorrect.Y; // 新增代码:修正等比缩放时,拉动左下角,右上角会跟着移动 by Aone @ 2016.10.10

...略...

end;

 

procedure TSelection.ResetInSpace(const ARotationPoint: TPointF; ASize: TPointF);

...略...

  begin
    LLocalPos.X := LAbsPos.X - ASize.X * RotationCenter.X * Scale.X;
    LLocalPos.Y := LAbsPos.Y - ASize.Y * RotationCenter.Y * Scale.Y;
  end;
{+++>}if not FProportional or (FProportional and SameValue(ASize.X / ASize.Y, FRatio, 0.0001)) then // 加入代码
  SetBounds(LLocalPos.X, LLocalPos.Y, ASize.X, ASize.Y);
end;

 

修正前:

 

修正后:

 

QC:

https://quality.embarcadero.com/browse/RSP-16061

 

以上是关于[修正] Firemonkey TSelection 控件等比缩放时,左下角拉动问题的主要内容,如果未能解决你的问题,请参考以下文章

[修正] Berlin Firemonkey Windows 控件左方显示虚线问题

[修正] Firemonkey 中英文混排折行问题(移动平台)

[修正] Firemonkey Android 文字斜粗体显示不全的问题

[修正] Firemonkey Windows & macOS 平台下 Edit & Memo 中文输入后会取消原选取文字的 BUG

[原创] Firemonkey 解决 Canvas 几何绘图质量问题(移动平台)

[修正] 移动平台曲线(如:TRectangle, TPath...等)不平滑的问题