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;
搞定。

相关阅读 >>

Delphi中对进程内存进行读写

Delphi ip地址转换str字符

Delphi android路径 tpath 文件路径,文件管理

Delphi tidhttp 超时设置无效的解决方法

Delphi禁用、启用usb

secsperday:一天共有多少秒

Delphi定位注册表指定键位

Delphi 判断目录是否可写

Delphi image1 图像复制到剪切板

Delphi tfilestream 流操作2

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



打赏

取消

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

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

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

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

评论

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