如何设置TControl的比例尺?

时间:2018-07-30 23:19:21

标签: delphi firemonkey delphi-10.2-tokyo

在XE2中,我仅使用了Scale属性来设置控件的x和y轴比例。显然,在后续版本中,Scale属性已在TControl中受到保护,并在下降的控件中发布。

我有很多函数可以引用TControl并控制其比例。

在10.2中设置TControl的小数位数的首选方法是什么?

1 个答案:

答案 0 :(得分:1)

您可以使用protected hack来解决此问题:

TYPE
  TControlHack = CLASS(TControl);

PROCEDURE SetScale(C : TControl ; NewScale : TPosition);
  BEGIN
    TControlHack(C).Scale:=NewScale
  END;

通过声明一个继承自原始类的新类,实际上是在将实例强制转换为新类时将受保护的定义“拖动”到视图中。

您也可以将其实现为类助手:

TYPE
  TControlHelper = CLASS HELPER FOR TControl
                   STRICT PRIVATE
                     PROCEDURE SetScale(Value : TPosition); INLINE;
                     FUNCTION GetScale : TPosition; INLINE;
                   PUBLIC
                     PROPERTY Scale : TPosition Read GetScale Write SetScale;
                   END;

FUNCTION TControlHelper.GetScale : TPosition;
  BEGIN
    Result:=INHERITED Scale
  END;

PROCEDURE TControlHelper.SetScale(Value : TPosition);
  BEGIN
    INHERITED Scale:=Value
  END;