增加托盘图标
        setwindowlong(application.handle,gwl_exstyle,ws_ex_toolwindow);
        bordericons:=[bisystemmenu];
        with icondata do
        begin
            icondata.dbsize:=sizeof(icondata);
            wnd:=handle;
            uid:=100;
            uflags:=nif_message+nif_icon+nif_tip;
            ucallbackmessage:=wm_user+1;
            hicon:=application.icon.handle;
            strpcopy(icondata.sztip,application.title);
            shell_notifyicon(nim_add,@icondata);
        end;删除托盘图标
    shell_notifyicon(nim_delete,@icondata);
修改
    shell_notifyicon(nim_modify,@icondata);
用一个timer在timer中修改(shell_notifyicon(nim_modify,@icondata);
)图标即可。

解决方案 »

  1.   

    增加托盘图标
            setwindowlong(application.handle,gwl_exstyle,ws_ex_toolwindow);
            bordericons:=[bisystemmenu];
            with icondata do
            begin
                icondata.dbsize:=sizeof(icondata);
                wnd:=handle;
                uid:=100;
                uflags:=nif_message+nif_icon+nif_tip;
                ucallbackmessage:=wm_user+1;
                hicon:=application.icon.handle;
                strpcopy(icondata.sztip,application.title);
                shell_notifyicon(nim_add,@icondata);
            end;删除托盘图标
        shell_notifyicon(nim_delete,@icondata);
    修改
        shell_notifyicon(nim_modify,@icondata);
    用一个timer在timer中修改(shell_notifyicon(nim_modify,@icondata);
    )图标即可。
      

  2.   

    加个 TTimer 控件,把图标集放在 TImageList 中,自己控制即可。
      

  3.   

    netlib,你好:
    我用你的方法可以实现“添加”和“删除”图标,但是“修改”不行
    你能不能将“修改”那部分说得具体点?怎么用它来实现图标闪动?
    谢谢!
      

  4.   

    我也是“加个 TTimer 控件,把图标集放在 TImageList 中”
      

  5.   

    不如用Rx 的TrayIcon控件,简单几下就可以了
    不用写太多代码
      

  6.   

    将 tnd.hIcon 赋新的Icon再执行:
    Shell_NotifyIcon(NIM_MODIFY,@tnd);
      

  7.   

    http://www.csdn.net/cnshare/soft/12/12436.shtm看看我这个东东。
    里面用的 RX 的。
    带源吗的,还有 RX 的delphi6版本的!
      

  8.   

    trayicon311控件到这里下载!
    http://go7.163.com/keyes/component/trayicon.zip
    有代码的,可以做出很多效果,学一学它的代码怎样写的就OK了!