http://blog.csdn.net/yangjian900109/article/details/51043094
在做中间层时,中间层往往不需要点击关闭时立刻关闭,而是最小化到托盘。故而特意隐藏关闭按钮功能。
1)隐藏退出功能 用PopMenu退出菜单代替
1.增加popMenu退出菜单,绑定到窗体
2.增加变量控制是否真的退出b_isClose;//True 退出 False 不退出
[delphi] view plain
copy
- b_isClose:Boolean; //True 退出 False 不退出
3.初始化b_isClose 在FormCreate或者FormShow事件中初始化 设置为False
[delphi]
view plain copy
- procedure
TForm1
.
FormShow(Sender: TObject);
- begin
- b_isClose:=False;
- end
;
4.PopMenu增加退出事件
[delphi]
view plain copy
- procedure
TForm1
.
pmExitClick(Sender: TObject);
- begin
- b_isclose := true
;
//设置为真正退出
- Close;//调用系统退出事件 响应函数 FormClose
- end
;
5.退出时依据是否真正退出做处理
[delphi]
view plain copy
- 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事件,增加语句:
[delphi]
view plain copy
- Application
.
Minimize;
//最小化应用
如下:
[delphi]
view plain copy
- 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到界面, 取名:
[delphi]
view plain copy
- RzTrayIcon1: TRzTrayIcon;
2. 修改FormClose事件,增加语句:
[delphi]
view plain copy
- RzTrayIcon1
.
PopupMenu := pmFrmMenu;
//绑定右下角PopMenu
最终如下:
[delphi]
view plain copy
- 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
;