DELPHI 托盘 实例

 DELPHI 托盘

procedure InstallIcon;      /////////////安装托盘
    procedure UninstallIcon;      ////卸载托盘
    procedure IconOnclick(var msg:Tmessage); message  ICONEVENT;   ////托盘事件

procedure TMain_F.InstallIcon;
var
  Nomallicon:TIcon;  //已连接图标
  Disbleicon:Ticon;  //未连接图标
begin
  Nomallicon:=Ticon.Create;
  Disbleicon:=Ticon.Create;
  imgsicon.GetIcon(0,Nomallicon);// imgsicon是imagelist控件
  imgsicon.GetIcon(1,Disbleicon);
  iconData.cbSize:=sizeof(iconData);
  iconData.Wnd:=Handle;
  iconData.uID:=ICON_ID;
  iconData.uFlags:=NIF_ICON or NIF_MESSAGE or NIF_TIP;
  iconData.uCallbackMessage:=ICONEVENT;
  iconData.hIcon:=Nomallicon.Handle;
  iconData.szTip:='名字';
  Shell_NotifyIcon(NIM_ADD,@iconData);
end;

procedure TMain_F.IconOnclick(var msg:TMessage);
var
  m_p:Tpoint;
begin
  if (msg.LParam=WM_RBUTTONDOWN) then
  begin
    GetCursorPos(m_p);
    pmnuNotify.Popup(m_p.X,m_p.Y);//pmnuNotify是PopupMenu孔件
  end;
end;

procedure TMain_F.UninstallIcon;
begin
  Shell_NotifyIcon(NIM_DELETE, @IconData );
end;

原文地址:https://www.cnblogs.com/fengju/p/6173903.html