Delphi 最小化程序到任务栏托盘 增加右键PopMenu

        在做中间层时,中间层往往不需要点击关闭时立刻关闭,而是最小化到托盘。故而特意隐藏关闭按钮功能。

       1)隐藏退出功能 用PopMenu退出菜单代替

             1.增加popMenu退出菜单,绑定到窗体

             2.增加变量控制是否真的退出b_isClose;//True 退出 False 不退出

b_isClose:Boolean; //True 退出 False 不退出

             3.初始化b_isClose    在FormCreate或者FormShow事件中初始化 设置为False

          

procedure TForm1.FormShow(Sender: TObject);
begin
   b_isClose:=False;
end;

            4.PopMenu增加退出事件

procedure TForm1.pmExitClick(Sender: TObject);
begin
   b_isclose := true;//设置为真正退出     
   Close;//调用系统退出事件 响应函数 FormClose
end;

          5.退出时依据是否真正退出做处理

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  if b_isclose then
  begin
    action := cafree;//真正退出
  end
  else
  begin
    action := canone;//修改事件类型不退出
  end;
end;

      2)最小化到托盘

            修改FormClose事件,增加语句:

Application.Minimize;//最小化应用

        如下:

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  if  b_isclose then
  begin
    action := cafree;//真正退出
  end
  else
  begin
    action := canone;//修改事件类型不退出
    Application.Minimize;//最小化应用
  end;
end;

    3) 增加托盘中右键弹出菜单

          1.安装拖放增加第三方控件TRzTrayIcon到界面, 取名:

 RzTrayIcon1: TRzTrayIcon;

           2. 修改FormClose事件,增加语句:

RzTrayIcon1.PopupMenu := pmFrmMenu;//绑定右下角PopMenu

         最终如下:

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  if b_isclose then
  begin
    action := cafree;//真正退出
  end
  else
  begin
    action := canone;//修改事件类型不退出
    Application.Minimize;//最小化应用
    RzTrayIcon1.PopupMenu := pmFrmMenu;//绑定右下角PopMenu
  end;
end;

    原文作者:_克急克怒_
    原文地址: https://blog.csdn.net/yangjian900109/article/details/51043094
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞