在 iOS 中横向打开项目在 Delphi XE8 中无法正确显示

Opening a project in landscape in iOS doesn't display correctly in Delphi XE8

当我在 iOS 中横向打开我的项目时,表格似乎向右旋转了 90 度,而且也不适合屏幕。

当我以纵向方式打开它时,我没有遇到任何问题。另外,当我将它转为横向时,它显示正确。

有人对此有解决方案吗?

更新: 我已经下载了 XCode 5.1.1 所以我可以编译 iOS 7.1 这解决了旋转问题,但现在它不会填满整个屏幕。

这显然是 XE8 中的一个错误,它似乎主要发生在较大的程序中,并且可能与 TMS iCL 组件结合使用。至少目前还没有人做出可以重现问题的小程序。我也遇到过这个问题,我 "solved" 解决了这个问题。

参见 this bug report and this forum question(如果您可以在服务器启动时捕获它)。两者都描述了各种修复和解决方法。

编辑: 我能够在一个小程序中重现该错误,看来至少 iCL FMX 包装器会导致此错误发生。此外,它仅在目标为 iOS 时发生 8. 我联系了 TMS,他们确认他们可以重现它并将修复它。在那之前,您可以通过在第一次显示时创建包装器来解决它:

TForm = class
  ...
  fWrapper: TTMSFMXNativeFMXWrapper;
  ...
end;

procedure TForm.FormShow(Sender: TObject);
begin
  if not Assigned(fWrapper) then
  begin
    fWrapper := TTMSFMXNativeFMXWrapper.Create(Self);
    fWrapper.Form := MyWrappedFMXForm;
    fWrapper.Parent := MyParentView;
  end;
end;

我正在使用 FXG 组件 ActivityDialog。我在出现问题的 formCreate 方法中使用了这个组件。通过将其从 formCreate 中移除并将其移动到 formActivate 中,问题得到解决。