关键是我不能控制退出方式,通过单击关闭Form的右上角关闭form我可以在OnClose里写清除图标的代码,但是它通过其他方法,如结束任务等方法,我应该怎样删除图标?

解决方案 »

  1.   

    那一定是没有将图标释放的缘故了
    shelll_notify(nid_delete)
      

  2.   

    Shell_NotifyIcon (nim_delete,@你定制的图标名称);
      

  3.   

    没错,非法结束的程序无法进行删除,在程序的form_closeviery事件和destory事件中删除!
      

  4.   

    我也遇到过这个问题。
    Shell_NotifyIcon (nim_delete,@你定制的图标名称);
    再close或application.terminate;就可以了。
      

  5.   

    在onclose事件中加入:Var
        lpData: TNotifyIconData;
    begin
       lpData.hwnd:= form1.handle;
       Shell_NotifyIcon (nim_delete,@lpData);
    end;