加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 检测Windows关闭或应用程序是否尝试从系统菜单关闭(WM

发布时间:2020-12-15 10:13:21 所属栏目:大数据 来源:网络整理
导读:我有托盘应用程序. Onj FormCloseQuery我检查程序是否应该转到托盘而不是关闭它我把它放在托盘中(CanClose:= False) 但是,如果Windows因Windows关闭而尝试关闭我的应用程序,我不想将我的应用程序移动到托盘中,而是关闭它. Win7终止我的应用程序,但XP没有关
我有托盘应用程序.

Onj FormCloseQuery我检查程序是否应该转到托盘而不是关闭它我把它放在托盘中(CanClose:= False)

但是,如果Windows因Windows关闭而尝试关闭我的应用程序,我不想将我的应用程序移动到托盘中,而是关闭它.

Win7终止我的应用程序,但XP没有关闭,因为我的应用程序仍然在托盘中.

如何检测Windows是否处于某种“关闭”模式?

谢谢!

解决方法

您的问题源于使用OnCloseQuery,这是一个错误的事件. Remy的回答解释了如何解决Windows关闭被默认的VCL结束会话消息处理阻止.而这又是由OnCloseQuery事件中的CanClose设置为False引起的.

该解决方法将完成工作,但有一个更简单的方法来处理这个.
不要让表格停止关闭,而是让它继续前进并关闭.完全删除OnCloseQuery事件.将其替换为OnClose事件.

procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Action := caNone;
  Visible := False;
end;

这个相当简单的代码足以让您的应用程序在主窗体关闭时最小化到托盘.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读