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

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

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

修正方法:

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

TSelection.GetTransformLeftBottom(AX,AY: Single; NewSize: TPointF; ...略...

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

<span style="color: #0000ff">end;

<div class="cnblogs_code">

 TSelection.ResetInSpace(...略...

<span style="color: #0000ff">begin<span style="color: #000000">
LLocalPos.X := LAbsPos.X - ASize.X RotationCenter.X <span style="color: #000000"> Scale.X;
LLocalPos.Y := LAbsPos.Y - ASize.Y RotationCenter.Y <span style="color: #000000"> Scale.Y;
<span style="color: #0000ff">end<span style="color: #000000">;
<span style="color: #008000">{<span style="color: #008000">+++><span style="color: #008000">}<span style="color: #0000ff">if <span style="color: #0000ff">not FProportional <span style="color: #0000ff">or (FProportional <span style="color: #0000ff">and SameValue(ASize.X / ASize.Y,FRatio,<span style="color: #800080">0.0001)) <span style="color: #0000ff">then <span style="color: #008000">//<span style="color: #008000"> 加入代码
<span style="color: #000000"> SetBounds(LLocalPos.X,LLocalPos.Y,ASize.X,ASize.Y);
<span style="color: #0000ff">end;

修正前:

修正后:

QC:

相关文章

 从网上看到《Delphi API HOOK完全说明》这篇文章,基本上都...
  从网上看到《Delphi API HOOK完全说明》这篇文章,基本上...
ffmpeg 是一套强大的开源的多媒体库 一般都是用 c/c+&#x...
32位CPU所含有的寄存器有:4个数据寄存器(EAX、EBX、ECX和ED...
1 mov dst, src dst是目的操作数,src是源操作数,指令实现的...