XE下显示托盘图标(TrayIcon)
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