频道分类

Delphi Android 关闭应用程序对话框询问

作者:admin 来源: 日期:2020/11/12 9:59:10 人气: 标签:

 
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放回应用程序的正常过程。

上一篇:Delphi Android检查互联网连接下一篇:没有资料