Delphi中使用托盘图标
2006-04-26 11:31
309 查看
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ADODB, ShellApi;
Const ICON_MESSAGE = WM_USER + 100;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
procedure InitIcon;
procedure OnIconNotify(var Message: TMessage); message ICON_MESSAGE;
procedure WMSysCommand(var Sysss: TWMSysCommand);message WM_SYSCOMMAND;
public
{ Public declarations }
end;
var
Form1: TForm1;
nid: TNotifyIconData;
implementation
{$R *.dfm}
{ TForm1 }
procedure TForm1.WMSysCommand(var Sysss: TWMSysCommand);
begin
with Sysss do
begin
if (CmdType and $FFF0 = SC_MINIMIZE) then
begin
if not Shell_NotifyIcon(NIM_ADD,@nid) then
ShowMessage('Failed!');
ShowWindow(Self.Handle,SW_HIDE);
Exit;
end;
inherited;
end;
end;
procedure TForm1.OnIconNotify(var Message: TMessage);
begin
if Message.LParam=WM_RBUTTONDOWN then
begin
ShowWindow(Self.Handle, SW_RESTORE);
Shell_NotifyIcon(NIM_DELETE, @nid);
end;
end;
procedure TForm1.InitIcon;
begin
nid.cbSize := sizeof(nid);
nid.Wnd := Self.Handle;
nid.hIcon := Application.Icon.Handle;
nid.szTip := 'Test';
nid.uCallbackMessage := ICON_MESSAGE;
nid.uFlags := NIF_ICON or NIF_TIP or NIF_MESSAGE;
SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Self.InitIcon;
end;
end.
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ADODB, ShellApi;
Const ICON_MESSAGE = WM_USER + 100;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
procedure InitIcon;
procedure OnIconNotify(var Message: TMessage); message ICON_MESSAGE;
procedure WMSysCommand(var Sysss: TWMSysCommand);message WM_SYSCOMMAND;
public
{ Public declarations }
end;
var
Form1: TForm1;
nid: TNotifyIconData;
implementation
{$R *.dfm}
{ TForm1 }
procedure TForm1.WMSysCommand(var Sysss: TWMSysCommand);
begin
with Sysss do
begin
if (CmdType and $FFF0 = SC_MINIMIZE) then
begin
if not Shell_NotifyIcon(NIM_ADD,@nid) then
ShowMessage('Failed!');
ShowWindow(Self.Handle,SW_HIDE);
Exit;
end;
inherited;
end;
end;
procedure TForm1.OnIconNotify(var Message: TMessage);
begin
if Message.LParam=WM_RBUTTONDOWN then
begin
ShowWindow(Self.Handle, SW_RESTORE);
Shell_NotifyIcon(NIM_DELETE, @nid);
end;
end;
procedure TForm1.InitIcon;
begin
nid.cbSize := sizeof(nid);
nid.Wnd := Self.Handle;
nid.hIcon := Application.Icon.Handle;
nid.szTip := 'Test';
nid.uCallbackMessage := ICON_MESSAGE;
nid.uFlags := NIF_ICON or NIF_TIP or NIF_MESSAGE;
SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Self.InitIcon;
end;
end.
相关文章推荐
- 【C#】关于右下角托盘图标以及气泡使用的注意事项
- vb.net 托盘图标的使用
- 解决Ubuntu使用Flatabulous主题&Ultra-flat图标搜狗输入法托盘图标无法显示问题
- 使用Win32 API做个系统托盘图标
- 在Delphi中使用系统对应文件类型的图标
- Delphi 7使用自定义图标关联文件类型
- C#.NET常见问题(FAQ)-如何使用右下角托盘图标notifyIcon
- 使用系统托盘图标,显示 Balloon Tooltip 的 MASM32 演示代码
- delphi 隐藏指定程序的托盘图标
- Delphi刷新托盘,去掉非正常退出的程序的托盘图标
- 解决Java程序的托盘图标在Windows任务栏重建后丢失的问题(使用SystemTray类创建托盘图标)
- C#之使用NotifyIcon实现任务栏托盘菜单,图标闪烁效果及气泡提示 很多程序是只需要后台运行的,甚至不需要自己的应用界面。NotifyIcon提供了程序在任务栏的显示功能 程序下载链接如下
- [转]使用Win32 API做个系统托盘图标
- Delphi刷新托盘,去掉非正常退出的程序的托盘图标
- Delphi里用托盘图标的注意事项
- 使用C++builder的TTrayIcon制作系统托盘动态图标和气泡提示
- Delphi清除右下角的托盘上无用的托盘图标(刷新托盘)
- c# winform 系统托盘图标的创建与简单使用
- 使用Win32 API做个系统托盘图标
- delphi 枚举托盘图标