1. 程式人生 > >Delphi 最小化程序到任務欄托盤 增加右鍵PopMenu

Delphi 最小化程序到任務欄托盤 增加右鍵PopMenu

控制 comment 處理 popu 是否 caf AC oar RM

在做中間層時,中間層往往不需要點擊關閉時立刻關閉,而是最小化到托盤。故而特意隱藏關閉按鈕功能。

1)隱藏退出功能 用PopMenu退出菜單代替

1.增加popMenu退出菜單,綁定到窗體

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

[delphi] view plain copy
  1. b_isClose:Boolean; //True 退出 False 不退出

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

[delphi] view plain copy
  1. procedure TForm1.FormShow(Sender: TObject);
  2. begin
  3. b_isClose:=False;
  4. end;


4.PopMenu增加退出事件

[delphi] view plain copy
  1. procedure TForm1.pmExitClick(Sender: TObject);
  2. begin
  3. b_isclose := true;//設置為真正退出
  4. Close;//調用系統退出事件 響應函數 FormClose
  5. end;


5.退出時依據是否真正退出做處理

[delphi] view plain copy
  1. procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
  2. begin
  3. if b_isclose then
  4. begin
  5. action := cafree;//真正退出
  6. end
  7. else
  8. begin
  9. action := canone;//修改事件類型不退出
  10. end;
  11. end;


2)最小化到托盤

修改FormClose事件,增加語句:

[delphi] view plain copy
  1. Application.Minimize;//最小化應用

如下:

[delphi] view plain copy
  1. procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
  2. begin
  3. if b_isclose then
  4. begin
  5. action := cafree;//真正退出
  6. end
  7. else
  8. begin
  9. action := canone;//修改事件類型不退出
  10. Application.Minimize;//最小化應用
  11. end;
  12. end;

3) 增加托盤中右鍵彈出菜單

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

[delphi] view plain copy
  1. RzTrayIcon1: TRzTrayIcon;

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

[delphi] view plain copy
  1. RzTrayIcon1.PopupMenu := pmFrmMenu;//綁定右下角PopMenu

最終如下:

[delphi] view plain copy
    1. procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    2. begin
    3. if b_isclose then
    4. begin
    5. action := cafree;//真正退出
    6. end
    7. else
    8. begin
    9. action := canone;//修改事件類型不退出
    10. Application.Minimize;//最小化應用
    11. RzTrayIcon1.PopupMenu := pmFrmMenu;//綁定右下角PopMenu
    12. end;
    13. end;

Delphi 最小化程序到任務欄托盤 增加右鍵PopMenu