Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 如何使用FireMonkey为Delphi XE5检测/处理屏幕旋转大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
首先 – 我是 Android和FireMonkey编程的初学者,所以请记住这一点:-).

我已经制作了一个FireMonkey / Android应用程序,可以根据屏幕大小和方向调整其控件的大小/重排,但是当用户旋转屏幕时,我无法弄清楚如何设置我的应用程序.如果我在其中运行Firemonkey / Win32并显示执行以下操作的按钮:

PROCEDURE TMainForm.FlipForm;
  VAR
    W,H : IntegeR;

  BEGIN
    W:=Width; H:=Height; Width:=H; Height:=W
  END;

然后陷阱FormResize事件,我的表单调整大小/回流它应该.我想在Android上运行时也这样做,但似乎在屏幕旋转时不会调用FormResize事件,因此我的按钮等不会重排并最终在屏幕外.

所以我的问题是,如何检测屏幕已旋转,以便我可以让我的应用程序在横向和纵向模式下工作?

解决方法

如果您无法使表单的OnResize事件起作用,那么您可以订阅FMX方向更改消息,从而:

uses
  FMX.Forms,FMX.messages,FMX.Types;

//In the deFinition of TFooForm you define:
FOrientationChangedId: Integer;
procedure OrientationChangedHandler(const Sender: TObject; const Msg: TmessagE);

//Subscribe to orientation change events in OnCreate or similar
FOrientationChangedId := TmessageManager.DefaultManager.SubscribeTomessage(
  TOrientationChangedmessage,OrientationChangedHandler);

//Unsubscribe from orientation change events in OnDestroy or similar
TmessageManager.DefaultManager.Unsubscribe(
  TOrientationChangedmessage,FOrientationChangedId);

procedure TFooForm.OrientationChangedHandler(const Sender: TObject; const Msg: TmessagE);
begin
  Log.d('Orientation has changed');
end;

大佬总结

以上是大佬教程为你收集整理的android – 如何使用FireMonkey为Delphi XE5检测/处理屏幕旋转全部内容,希望文章能够帮你解决android – 如何使用FireMonkey为Delphi XE5检测/处理屏幕旋转所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。