1.拖一个TrayIcon控件
2.拖一个ApplicationEvents控件
3.拖一个PopupMenu控件
将TrayIcon的PopupMenu属性与PopupMenu控件关联
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
unit
UnitMain;
interface
uses
Winapi
.
Windows, Winapi
.
Messages, System
.
SysUtils, System
.
Variants, System
.
Classes, Vcl
.
Graphics,
Vcl
.
Controls, Vcl
.
Forms, Vcl
.
Dialogs, Vcl
.
AppEvnts, Vcl
.
ExtCtrls, Vcl
.
Menus;
type
TForm6 =
class
(TForm)
TrayIcon1: TTrayIcon;
ApplicationEvents1: TApplicationEvents;
PopupMenu1: TPopupMenu;
Exit1: TMenuItem;
procedure
ApplicationEvents1Minimize(Sender: TObject);
// 窗体最小化时,显示Icon图标
procedure
TrayIcon1Click(Sender: TObject);
procedure
FormClose(Sender: TObject;
var
Action: TCloseAction);
procedure
Exit1Click(Sender: TObject);
procedure
FormCloseQuery(Sender: TObject;
var
CanClose:
Boolean
);
// 关闭之前
procedure
FormActivate(Sender: TObject);
private
{ Private declarations }
RealClose :
Boolean
;
// 关闭标志 是否是真正的关闭
public
{ Public declarations }
end
;
var
Form6: TForm6;
implementation
{$R *.dfm}
procedure
TForm6
.
FormActivate(Sender: TObject);
begin
if
Tag=
0
then
begin
Tag:=
1
;
RealClose:=
False
;
end
;
end
;
procedure
TForm6
.
ApplicationEvents1Minimize(Sender: TObject);
begin
Hide();
// 隐藏窗体
Self
.
WindowState := TWindowState
.
wsMinimized;
// 最小化
TrayIcon1
.
Visible:=
True
;
// 显示图标
end
;
procedure
TForm6
.
Exit1Click(Sender: TObject);
// 菜单里的真正退出
begin
RealClose :=
True
;
Self
.
close();
end
;
procedure
TForm6
.
FormClose(Sender: TObject;
var
Action: TCloseAction);
begin
TrayIcon1
.
Visible:=
False
;
// 隐藏Icon
TrayIcon1
.
Free;
// 释放ICON
end
;
procedure
TForm6
.
FormCloseQuery(Sender: TObject;
var
CanClose:
Boolean
);
begin
CanClose:=RealClose;
if
(
not
RealClose)
then
ApplicationEvents1Minimize(
nil
);
end
;
procedure
TForm6
.
TrayIcon1Click(Sender: TObject);
begin
TrayIcon1
.
Visible:=
False
;
Self
.
Show();
Self
.
WindowState := TWindowState
.
wsNormal;
Application
.
BringToFront();
// 前靠
end
;
end
.
|
分类: Delphi