如何在delphi xe5 Firemonkey中使用android开发防止屏幕旋转

Mar*_*cel 3 delphi android

我发现以下代码可以防止屏幕旋转,但是当我编译时,我得到了一堆未声明的标识符:IFMXScreenService, TPlatformServices. 显然这是因为缺少单位。但是我找不到它是什么单位。

代码:

procedure TLogin.FormCreate(Sender: TObject);
var
  ScreenService: IFMXScreenService;
  OrientSet: TScreenOrientations;
begin
  if TPlatformServices.Current.SupportsPlatformService(IFMXScreenService) then
  begin
    ScreenService := TPlatformServices.Current.GetPlatformService
      (IFMXScreenService) as IFMXScreenService;
    OrientSet := [TScreenOrientation.soLandscape];
    ScreenService.SetScreenOrientation(OrientSet);
  end;
end;
Run Code Online (Sandbox Code Playgroud)

任何帮助都会非常感谢。

更新:

缺少的单位是FMX.Platform。但是当我现在尝试编译时,出现错误:\\android\\debug\\libproject.so: open: permission denied

Rem*_*eau 5

添加FMX.Platform到您的uses子句中,并去掉对 的冗余调用GetPlatformService()

uses
  ..., FMX.Platform;

procedure TLogin.FormCreate(Sender: TObject);
var
  ScreenService: IFMXScreenService;
  OrientSet: TScreenOrientations;
begin
  if TPlatformServices.Current.SupportsPlatformService(IFMXScreenService, IInterface(ScreenService)) then
  begin
    OrientSet := [TScreenOrientation.soLandscape];
    ScreenService.SetScreenOrientation(OrientSet);
  end;
end;
Run Code Online (Sandbox Code Playgroud)


sgm*_*sgm 5

转到项目选项 -> 应用程序 -> 方向

检查自定义方向并检查景观选项之一。