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 }
    /// <summary>
    ///  TOrientationChangedMessageのID
    /// </summary>
    FOrientationChangedId: Integer;

    /// <summary>

    /// </summary>
    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.

相关阅读 >>

Delphi xe system.netencoding 字符串base64编码解码

Delphi yearof 根据指定的日期返回年

Delphi richedit控件中插入图片bmp(bmp,文件),gif(文件)

Delphi 编写系统服务

Delphi_关于null,nil

Delphi的tclientsocket组件和tserversocket组件(c/s)说明

Delphi 开发安卓时判断进入非活动

Delphi 回车 选择下一个控件

Delphi代码,直截注入别的进程,之后直截运行在别的进程中的代码

Delphi 获取网页代码单元

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...