访问 属性 的转换对象在 Android 上返回意外结果

Accessing property of casted object returning unexpected results on Android

我有一段代码可以将 TFmxObject 转换为 TForm 并访问它的 Height 和 Width 属性,效果很好。 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 上,此代码 returns 我期望的高度和宽度值并将其分配给 LPar.Height 和 LPar.Width(也是标准 TControl) , 但是一旦我将目标平台更改为 Android 并在设备上使用 usb 调试进行调试, 赋值就不是实际值而是类似于 6.2645644...+036 (高度和宽度都具有相同的无效值值)。

我不知道问题是在于将 TFmxObject 转换为 TForm 还是..真正从哪里开始进一步排除故障。我试过将 AControl.Parent 分配给本地 TFmxObject,然后对局部变量执行强制转换(结果相同),我也尝试过使用这种语法进行强制转换

TForm(AControl.Parent)

运气不好。任何帮助将不胜感激。

通过安装 Berlin 10.1 并从头开始设置环境(安装包、更新库路径等...)修复了它 我不知道这是否已通过使用较新版本的 Delphi 解决,或者是否是我重新安装了我的软件包。