[FMX]为 TControl 增加 DisableAlign 和 EnableAlign 方法

官方没有提供这两个方法,但我们有时候需要调整 FMX 的布局,而这一切都需要修改 FDisableAlign 这个受保护的成员的值,而要修改它的值,在以前的文章中提供了好几种方法,当然最简单的是直接加 class helper。这里我们就采用这一办法。

type
  TAlignChildHelper = class helper for TControl
    function DisableAlign: Boolean;
    function EnableAlign: Boolean;
  end;
{ TAlignChildHelper }

function TAlignChildHelper.DisableAlign: Boolean;
begin
  Result := not FDisableAlign;
  FDisableAlign := True;
end;

function TAlignChildHelper.EnableAlign: Boolean;
begin
  Result := not FDisableAlign;
  if Result then Exit;
  FDisableAlign := false;
  Realign;
end;

代码很简单,不需要解释,上面的函数都是返回之前是否允许对齐。要禁止对齐,就调用控件的 DisableAlign,允许对齐就调用 EnableAlign 就可以了。

分享到: