可以实现,你想要给我发e-mail:[email protected].

解决方案 »

  1.   

    下面的函数你可以在程序中进行调用,init_notifyIcon用于初始化,程序退出前必须调用Close_notifyIcon;const my_message=wm_user+100;procedure tform1.OnIconNotify(var msg:tmessage);message my_message;procdure init_NotifyIcon;
    var
     nid:TNotifyIconData;
    begin
     nid.cbsize:=sizeof(nid);
     nid.wnd:=handle;
     nid.uid:=0;
     nid.hIcon:=Application.icon.handle;
     nid.sztip:='提示信息!';
     nid.uCallBackMessage:=my_message;
     nid.uflags:=nif_icon or nif_tip or nif_message;
     if not shell_notifyIcon(NIM_ADD,@nid) then
       showmessage('Error!');
    end;procedure close_notifyIcon;
    var
     nid:tnotifyIcondata;
    begin
     nid.cbsize:=sizeof(nid);
     nid.uid:=0;
     nid.wnd:=handle;
     shell_notifyIcon(NIM_DELETE,@nid);
    end;procedure tform1.OnIconNotify(var msg:tmessage);
    begin
     if msg.lparam=wm_lbuttondown then
      showmessage('Mouse left button down');
    end;
      

  2.   

    你用delphi,找控件吧。
    或者查msdn,有详细的例子。
      

  3.   

    推荐使用 trayicon 控件,在程序员大本营就可以找到,不但十分的方便,而且功能还多一些。当然,要是你对可执行文件的大小十分敏感,那么使用 Shell_NotifyIcon 函数是个好办法。
      

  4.   

    我觉得直接使用api还是比较方便的,可以为图表加上鼠标响应事件,弹出菜单了,设置窗口了,都非常方便
      

  5.   

    to:Kingron   你的代码只是将图标加到了系统栏,而原状态栏的提示按钮没有取消,并且系统栏中的图标也没有响应事件,可否再详细一点?
      

  6.   

    去找一下译林出的《Delphi 4开发大全》,配套光盘上有一个TrayIcon的Demo非常详细,也有现成控件可以用,不过TrayIcon没那么好做的,你看了就知道。
      

  7.   

    确实,在<delphi 4开发大全>的下册上介绍的很清楚.
      

  8.   

    procedure AddIcon(bAdd:boolean;selfHandle:THandle;msg:UINT;tip:string);
    var FIconData: TNotifyIconData;
    begin
        with FIconData do
        begin
          cbSize := SizeOf(FIconData);
          Wnd := selfHandle;
          uID := $DEDB;
          uFlags := NIF_MESSAGE or NIF_ICON or NIF_TIP;
          hIcon := application.Icon.Handle;//加的图标为本身程序的图标。
          uCallbackMessage := msg;
          StrCopy(szTip, PChar(tip));
        end;
        if bAdd then
           Shell_NotifyIcon(NIM_Add, @FIconData)
        else
           Shell_notifyIcon(NIM_Delete,@FiconData);
    end;
    //一加一删。
    msg为回调函数。
    selfHandle为Form1.Handle,
    tip为字符串,
    怎样,够方便的吧。
      

  9.   

     看看 Sample 中的 TrayIcon 例子。
     我用这个例子修改之后写的系统管理软件已经在单位的50多台计算机上连续使用5个多月了,还没发现一个 Bug 呢。8)
      

  10.   


     关于任务栏按钮的问题,也在 TrayIcon 例子中。 好象是调用 Hide() 就行了。
      

  11.   

    SMTH的Delphi的精华区里面有文章
      

  12.   

    to:Winsky
       你所指的Sample中的TrayIcon例子在哪里?我怎么没有找到? 
      

  13.   

    to nevid:
    用控件吧。十分完备地控制trayicon.
    我给你发了一个邮件,里面有该控件及例子。