delphi FMX检测屏幕旋转  
官方Delphi 学习QQ群: 682628230(三千人)
频道

delphi FMX检测屏幕旋转


关于如何使用Delphi开发的智能手机应用程序检测屏幕旋转的备忘录。

环境:Delphi 10.3 Rio

方法
当设备的屏幕方向更改时,将发送FMX.Forms.TOrientationChangedMessage。
如果您能收到此消息,则可以进行判断。

System.Messaging.TMessageManager负责应用程序的消息处理。
您可以在其中注册TOrientationChangedMessage的处理方法。
作为程序

获取TMessageManager的实例
调用TMessageManager.SubscribeToMessage来注册消息的方法
用一种处理方法执行屏幕旋转检测处理
若要取消消息的方法,请将调用TMessageManager.SubscribeToMessage时获得的消息ID传递给TMessageManager.Unsubscribe。
实施实例
unit MainU;

interface

uses
  ...(省略), System.Messaging;

type
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
  private
    { private }
    ///
    ///  TOrientationChangedMessageのID
    ///
    FOrientationChangedId: Integer;

    ///

    ///
    procedure OrientationChangedHandler(const Sender: TObject; const Msg: TMessage);
  public
    { public }
  end;

var
  Form1: TForm1;

implementation

{$R *.fmx}

{ TForm1 }

procedure TForm1.FormCreate(Sender: TObject);
begin
  // TMessageManager
  // TMessageManager.DefaultManager
  // TOrientationChangedMessage
  FOrientationChangedId :=
    TMessageManager.DefaultManager.SubscribeToMessage(
      TOrientationChangedMessage, OrientationChangedHandler);
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
  // OrientationChangedHandler
  TMessageManager.DefaultManager.Unsubscribe(
    TOrientationChangedMessage, FOrientationChangedId);
end;

procedure TForm1.OrientationChangedHandler(const Sender: TObject; const Msg: TMessage);
begin
  ShowMessage('方向发生改变!');
end;

end.


推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.66419291496277 seconds