- 人气:
- 放大
- 缩小
- 二维码
- 赞赏
delphi Android 关闭应用程序对话框询问
Android Delphi关闭应用程序
Android的编程方面,我们对VCL应用程序的习惯已发生了很大变化。
更改之一是不再对窗口进行处理,如果不是对Activity的重大更改。
在Android上编写第一个应用程序时,我遇到的一个问题是如何在运行时关闭应用程序,例如,从关闭按钮。
搜索文档后,我发现它与VCL应用程序中的方法相同:
// 运行时关闭应用程序
Application.Terminate;
根据Embarcadero docwiki, FMX.Forms.TApplication.Terminate终止FireMonkey中的应用程序。
必须调用Application.Terminate以编程方式终止应用程序。
请记住,在单位的用途中必须具有单位FMX.Forms。
查询关闭的Android应用
现在,为避免数据丢失或意外关闭应用程序,我们必须询问用户是否真的要关闭应用程序。
为此,我们可以在窗体的OnCloseQuery事件中进行操作。
考虑到无论用户想要什么,Application.Terminate命令都会关闭该应用程序,因此我们必须使用Close命令。
在OnCloseQuery事件中,我们放置以下代码:
procedure TForm1.Button1Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose := False;
MessageDlg('你确定要关闭应用程序?', TMsgDlgType.mtConfirmation, [TMsgDlgBtn.mbYes, TMsgDlgBtn.mbNo], 0,
procedure(const AResult: TModalResult)
begin
if AResult = mrYes then
Application.Terminate;
end
);
end;
我们要做的是通过一个异步过程询问用户,如果他们想关闭应用程序,并且答案是否定的,则我们执行Application.Terminate命令。
否则,我们将变量CanClose:= False放回应用程序的正常过程。