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 一行一行读取txt文件

Delphi tstringlist 保存txt文本文件最后一行不留空行

Delphi 字符串与二进制数之间的互相转换

Delphi 加壳exe的方法

Delphixe firemonkey 如何画图

Delphi idhttp 断开连接/超时读取

Delphi dateutils功能详解

Delphi 网上获取北京时间取字符串与字符串中间的字符

Delphi简体中文与繁体中文的转换函数

Delphi利用系统环境变量获取常用系统目录

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



打赏

取消

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

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

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

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

评论

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