begin if Pos('缩为小图标',self.mnuIcon.Caption)>0 then begin with NT do begin cbSize:=Sizeof(NT); // nid变量的字节数 Wnd:=Handle; // 主窗口句柄 UID:=0; // 内部标识,可设为任意数 uFlags:=NIF_MESSAGE or NIF_ICON or NIF_TIP; uCallBackMessage:=MY_MESSAGE; hIcon:=Icon.Handle; // 要加入的图标句柄,可任意指定 szTip:='Delphi'#0; // 提示字符串 hIcon := Application.Icon.Handle; end; Application.Minimize; ShowWindow(Application.Handle,SW_HIDE); Shell_NotifyIcon(NIM_ADD,@NT); self.mnuIcon.Caption:='正常显示'; end else begin Shell_NotifyIcon(NIM_DELETE,@NT); ShowWindow(Application.Handle,SW_SHOW); Application.Restore; self.mnuIcon.Caption:='缩为小图标'; end; end; 恢复部分,需要用到自定义消息 var p : TPoint; begin if (message.lParam = WM_LBUTTONDOWN) then ; if (message.lParam = WM_RBUTTONDOWN) then begin GetCursorPos(p); self.PopupMenu1.Popup( p.x ,p.y ); end; end;
类似的控件名称均会带有TrayIcon的字样,你找找看。
raize组件也带。很多第三方的,免费,不免费的都有。
if Pos('缩为小图标',self.mnuIcon.Caption)>0 then
begin
with NT do begin
cbSize:=Sizeof(NT);
// nid变量的字节数
Wnd:=Handle;
// 主窗口句柄
UID:=0;
// 内部标识,可设为任意数
uFlags:=NIF_MESSAGE or NIF_ICON or NIF_TIP;
uCallBackMessage:=MY_MESSAGE;
hIcon:=Icon.Handle;
// 要加入的图标句柄,可任意指定
szTip:='Delphi'#0;
// 提示字符串
hIcon := Application.Icon.Handle;
end;
Application.Minimize;
ShowWindow(Application.Handle,SW_HIDE);
Shell_NotifyIcon(NIM_ADD,@NT);
self.mnuIcon.Caption:='正常显示';
end
else
begin
Shell_NotifyIcon(NIM_DELETE,@NT);
ShowWindow(Application.Handle,SW_SHOW);
Application.Restore;
self.mnuIcon.Caption:='缩为小图标';
end;
end;
恢复部分,需要用到自定义消息
var
p : TPoint;
begin
if (message.lParam = WM_LBUTTONDOWN) then
;
if (message.lParam = WM_RBUTTONDOWN) then
begin
GetCursorPos(p);
self.PopupMenu1.Popup( p.x ,p.y );
end;
end;
这种程序网上大把了