您的位置:首页 > 其它

应用程序的关闭退出(在FMX中,Activity替代了Form的概念)

2015-08-21 18:11 639 查看
在VCL中,关闭程序的主窗体也就意味着程序的主循环结束,主程序自然而然结束。所以在主窗体中使用窗体的关闭函数(Close)即可,如下:

procedure TfrmMain.btncloseClick(Sender: TObject);
begin
Close;
end;

在FMX中,由Activity替代了Form的概念,虽然TForm类仍然存在,但MainForm通过关闭函数无法结束程序,使用Application.Terminate均无效,调整为:

uses
FMX.Platform.Android;

procedure TForm2.SpeedButton1Click(Sender: TObject);
begin
MainActivity.finish;
end;

此时程序直接关闭了,如果需要在退出前询问一下,可以参考VCL中的做法,在按钮事件中仍然使用关闭函数,在OnCloseQuery事件中询问是否退出,在OnClose事件中实现程序的关闭,如下:

uses
FMX.Platform.Android;

procedure TfrmMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
{退出程序}
MainActivity.finish;
end;

procedure TfrmMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if MessageDlg('是否退出?',
TMsgDlgType.mtConfirmation,
[TMsgDlgBtn.mbOK, TMsgDlgBtn.mbCancel],
-1) = mrOK then
CanClose := true
else
CanClose := false;
end;

procedure TfrmMain.btncloseClick(Sender: TObject);
begin
Close;
end;

在虚拟机中运行如下:





参考:http://www.cnblogs.com/key-ok/p/3357573.html
http://www.cnblogs.com/key-ok/p/3357576.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: