标签:end Sender FMX Delphi TObject XE5 Android procedure
原始文章:Delphi XE5 for Android (二)
按照Embarcadero的说法:Windows平台只能使用VCL,Windows、iOS和Android都可以使用FMX,并且VCL和FMX不能同时在一个程序中。FMX的用法与VCL有一定的差异,先从最简单的说起:
应用程序的关闭退出
在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;
procedure TfrmMain.FormKeyDown(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState); begin //当按下硬件键盘的返回按钮时,关闭当前窗体 if Key = vkHardwareBack then Close; end;
在虚拟机中运行如下:
标签:end,Sender,FMX,Delphi,TObject,XE5,Android,procedure 来源: https://www.cnblogs.com/karkash/p/15714946.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。