应用程序的关闭退出(在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
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
相关文章推荐
- 二叉树的遍历:先序中序后序遍历的递归与非递归实现及层序遍历
- WIN7 嵌入式系统安装教程 Windows Embedded Standard 2011 安装
- C# FTP操作类
- jvm学习笔记
- android权限管理
- 使用匿名内部类实现接口
- flume 转
- 将Maven项目打包成可执行jar文件(引用第三方jar)
- iOS中OC字符串与C语言字符串之间的相互转换
- HDU 3072--Intelligence System【SCC缩点新构图 && 求连通所有SCC的最小费用】
- day5: 字典、集、数组排序:字典类、集合类、数组数组排序、字典、集合的快速遍历、数组排序
- js 数据存入数组
- 自然数的拆分
- Codeforces Round #286 (Div. 2) D. Mr. Kitayuta's Technology 强连通分量 有向图求环
- Sencha Touch自定义NavigationView
- HD 2899 Strange fuction 【二分】
- 九度oj 1117
- 【记录帖】svn常用命令
- oracle12创建用户授权和密码报:65096 公用用户名或角色无效
- keepalived+mysql双主实现数据库冗余