const WM_NOTIFYICON=WM_USER+1;
...
type
  TMainForm = class(TForm)
...
  private
...
    { Private declarations }
    procedure AddIcon;  //添加图标到托盘里
    procedure RemoveIcon;//删除托盘里的图标
    procedure windowhide; // Hide Window
    procedure windowshow; // Show Window
    procedure OnNotifyicon(var Message:Tmessage);Message WM_NOTIFYICON; //处理菜单
....procedure TMainForm.AddIcon;
begin
  IconData.cbSize:=sizeof(IconData);
  IconData.Wnd:=handle;
  IconData.uID:=1000;
  IconData.uFlags:=NIF_MESSAGE+NIF_ICON+NIF_TIP;
  IconData.uCallbackMessage:=WM_USER+1;
  IconData.hIcon:=application.icon.Handle;
  IconData.szTip:='金山软件';
  Shell_NotifyIcon(NIM_ADD,@IconData);
end;procedure TMainForm.RemoveIcon;
begin
  shell_notifyicon(NIM_DELETE,@ICONDATA);
end;procedure TMainForm.windowhide;
begin  self.WindowState:=wsMinimized;
  self.Hide;
  Application.HideHint;
  self.addicon;
end;procedure TMainForm.windowshow;
begin
  self.Show;
  self.WindowState:=wsNormal;
  Application.ShowHint := True;
  self.RemoveIcon;
end;procedure TMainForm.OnNotifyicon(var Message: Tmessage);
var
  mypoint:Tpoint;
begin
if Message.LParam = WM_RBUTTONDOWN then
    begin
      GetCursorPos(mypoint);
      setforegroundwindow(application.Handle);
      application.ProcessMessages;
      PopupMenuTry.popup(mypoint.x,mypoint.y);
    end
    else if Message.LParam = WM_LBUTTONDBLCLK THEN
    Begin
        WindowShow;
    end;end;

解决方案 »

  1.   

    请问abfTrayIcon在那里找,谢谢!
      

  2.   

    隐藏状态栏的过程就是这几句,没有少
    self.WindowState:=wsMinimized;
    self.Hide;
    Application.HideHint;
      

  3.   

    Email,
    我给你一个控件,还能有好多功能
      

  4.   

    [email protected]
    来信说明要此控件名
      

  5.   

    trayicon311控件到这里下载!
    http://go7.163.com/keyes/component/trayicon.zip