zoukankan      html  css  js  c++  java
  • 应用程序的关闭退出

    在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; 

    在虚拟机中运行如下:

    image

  • 相关阅读:
    网络服务管理手册
    Oracle随机函数的取法
    oracle 分析函数over
    RMAN故障解决——RMAN用户手册
    SQL*PLUS命令的使用大全
    如何监测一个PLSQL过程的运行情况(三)
    oracle for in loop 两例
    自定义组件——按钮(转)
    新人报到安家!
    Delphi中生成控件的两种方法
  • 原文地址:https://www.cnblogs.com/china1/p/3377608.html
Copyright © 2011-2022 走看看