问题来源: http://www.cnblogs.com/del/archive/2008/01/17/1043226.html#1548952
使用 Delphi 提供的 TTrayIcon 类, 两三行程序甚至不写程序(设计时选择几下)即可实现.
设计时的准备工作:
1、添加 TTrayIcon、TPopupMenu 控件, TPopupMenu 用于托盘的右键菜单.
2、随意给 TPopupMenu 添加些菜单项.
代码文件:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ExtCtrls;
type
TForm1 = class(TForm)
TrayIcon1: TTrayIcon;
PopupMenu1: TPopupMenu;
aaa1: TMenuItem;
bbb1: TMenuItem;
ccc1: TMenuItem;
procedure FormCreate(Sender: TObject);
procedure TrayIcon1DblClick(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
{指定图标, 这里是用程序相同的图标; 也可在设计时选择, 还可以指定一个图标组, 再用 IconIndex 切换}
TrayIcon1.Icon := Application.Icon;
{指定右键菜单}
TrayIcon1.PopupMenu := PopupMenu1;
{使之可见}
TrayIcon1.Visible := True;
end;
{给图标添加到双击事件}
procedure TForm1.TrayIcon1DblClick(Sender: TObject);
begin
ShowMessage('OnDblClick');
end;
end.
窗体文件:
object Form1: TForm1
Left = 0
Top = 0
Caption = 'Form1'
ClientHeight = 206
ClientWidth = 339
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
OnCreate = FormCreate
PixelsPerInch = 96
TextHeight = 13
object TrayIcon1: TTrayIcon
OnDblClick = TrayIcon1DblClick
Left = 152
Top = 88
end
object PopupMenu1: TPopupMenu
Left = 216
Top = 88
object aaa1: TMenuItem
Caption = 'aaa'
end
object bbb1: TMenuItem
Caption = 'bbb'
end
object ccc1: TMenuItem
Caption = 'ccc'
end
end
end