zoukankan      html  css  js  c++  java
  • Delphi XE5 for Android (二)

    原始文章: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;

    在虚拟机中运行如下:

  • 相关阅读:
    老婆和老媽同時掉在了水裡终于有答案了
    js对象序列化为json字符串
    基于jQuery的单据输入
    重发我的 HTML单据输入控件
    Spring MVC 实现REST风格API版本控制
    匿名方法和Lambda 表达式
    委托的定义和委托的实例化和使用
    LINQ进阶
    C#3.0的新特性
    使用 var 和 object 声明变量有什么区别?
  • 原文地址:https://www.cnblogs.com/karkash/p/15714946.html
Copyright © 2011-2022 走看看