delphi 如何让程序在按了 Android 的 Back 键后不关闭当前 From 或者不 APP 退出  
官方Delphi 学习QQ群: 682628230(三千人)
频道

delphi 如何让程序在按了 Android 的 Back 键后不关闭当前 From 或者不 APP 退出


安卓底下,Delphi FireMonkey 做的 Android APP,默认情况下,按下手机的 Back 键,会关闭当前 Form。如果这个 Form 是主 Form 则整个 APP 退出。
本来,Form 有一个 OnCloseQuery 事件,这个事件会在一个 Form 被关闭的时候触发,该事件方法大概是这样的:
procedure TForm2.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
在该事件方法里面,将 CanClose := False;就应该不会关闭这个 Form。
经过测试,这个代码在 Windows 底下有效,在 Android 下面无效。
网上搜索了一下,应该是拦截 Form 的 KeyUp 事件:

procedure TForm2.FormKeyUp(Sender: TObject; var Key: Word; var KeyChar: Char;  
  Shift: TShiftState);  
begin  
  Key := 0; //这样就不会关闭这个 Form  
end;  

当然了,不能随便什么输入,都变成 Key := 0。所以这里需要加上一个判断:
if Key = vkHardwareBack then

到这里,我们可以在 Form 的 OnKeyUp 事件方法里面,加上代码,判断用户是否按了 Back 键,如果是,则如果我们不想要这个 Form 关闭,则设置 Key := 0;
搞定。

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

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

执行时间: 1.4467718601227 seconds