我有一段代码片段可以将TFmxObject强制转换为TForm并访问它的高度和宽度属性。 AControl是标准的TControl,Parent属性是TfmxObject。编辑:我首先检查IS关键字,父母实际上是一个TForm。
LPar:=TControl.Create(AControl);
LPar.Height:=(AControl.Parent As TForm).Height;
LPar.Width:=(AControl.Parent As TForm).Width;
在Windows上,此代码返回我期望的高度和宽度值,并将其分配给LPar.Height和LPar.Width(也是标准TControl),但只要我将目标平台更改为Android并调试在设备上使用USB调试时,赋值不是实际值,而是类似6.2645644 ... + 036(高度和宽度都具有相同的无效值)。
我不知道问题在于将TFmxObject作为TForm投射还是..真的从哪里开始进一步排除故障。我已经尝试将AControl.Parent分配给本地TFmxObject,然后对局部变量执行强制转换(相同的结果),我也尝试使用此语法进行转换
TForm(AControl.Parent)
没有运气。任何帮助将不胜感激。
答案 0 :(得分:0)
通过安装Berlin 10.1并从头开始设置环境(安装包,更新库路径等等)来修复它 我不知道是否通过使用较新版本的Delphi修复了这个问题,或者是否重新安装了我的软件包。