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;

    在虚拟机中运行如下:

  • 相关阅读:
    codeforces 616B Dinner with Emma
    codeforces 616A Comparing Two Long Integers
    codeforces 615C Running Track
    codeforces 612C Replace To Make Regular Bracket Sequence
    codeforces 612B HDD is Outdated Technology
    重写父类中的成员属性
    子类继承父类
    访问修饰符
    方法的参数
    实例化类
  • 原文地址:https://www.cnblogs.com/karkash/p/15714946.html
Copyright © 2011-2022 走看看