zoukankan      html  css  js  c++  java
  • Firemonkey里触发home按键被按下的事件

    吾八哥我最近在使用Delphi里的Firemonkey平台写一个叫“由由密码管家”的APP工具,是跨多平台的,如ios/android/windows/macOs。由于是用于密码管理的,那么在手机里操作会很频繁的被按下home键而切换到后台的,所以希望程序被按下home键的时候隐藏到后台就自动锁定程序,再激活APP的时候要求重新输入密码才可以操作。那么问题来了,在Firemonkey里面如何捕获按下home键的事件呢?网上搜索各种资料,终于找到了答案,这里分享出来具体的解决方法:

    function TMaster.HandleAppEvent(AAppEvent: TApplicationEvent; AContext: TObject): Boolean;
    begin
      case AAppEvent of
        TApplicationEvent.FinishedLaunching:
          ;
        TApplicationEvent.BecameActive:
          ;
        TApplicationEvent.WillBecomeInactive:
          begin
            if not Assigned(LoginFrame) then
              ShowFrame(TLoginFrame, Master, False);
            LoginFrame.BringToFront;
          end;
        TApplicationEvent.EnteredBackground:
          ;
        TApplicationEvent.WillBecomeForeground:
          ;
        TApplicationEvent.WillTerminate:
          ;
        TApplicationEvent.LowMemory:
          ;
        TApplicationEvent.TimeChange:
          ;
        TApplicationEvent.OpenURL:
          ;
      end;
      Result := True;
    end;

    当然,在使用前需要在 onCreate 中获取消息接口

    使用IFMXApplicationEventService接口里的SetApplicationEventHandler方法将上述事件方法作为参数进行调用即可实现,HandleAppEvent方法里会触发各种程序相关的事件通知。代码如下:

    var
      SvcEvents: IFMXApplicationEventService;
    begin
      if TPlatformServices.Current.SupportsPlatformService(IFMXApplicationEventService, IInterface(SvcEvents)) then
      begin
        SvcEvents.SetApplicationEventHandler(HandleAppEvent);
      end;
    end;
  • 相关阅读:
    crunch--字典生成工具
    在LINUX上查询哪个用户从哪个IP登录,登录时间,执行了什么命令?
    关于jetbrains系列产品2018.1.5以后的使用(crack)方法
    vim 加密(crypt)文本文档
    ubuntu 安装 c语言的库函数man手册
    Ubuntu Desktop 编译 ffmpeg (简略的写写)
    统计php-fpm内存占用
    ffmpeg 视频 转 gif
    一条命令将windows下多个ts文件合并为一个ts文件
    CC攻击原理及防范方法
  • 原文地址:https://www.cnblogs.com/westsoft/p/8413811.html
Copyright © 2011-2022 走看看