我的程序在系统状态栏上添加了快捷图标,在我程序退出后,系统状态栏上的图标不自动删除,非得等我用鼠标移到图标上面才会变没有.怎样才能在程序退出后使系统状态栏上得图标自动删除.我的增加图标程序是:
  ntida.cbSize :=sizeof(tnotifyicondataa);
  ntida.Wnd :=handle;
  ntida.uID :=100;
  ntida.uFlags :=nif_icon+nif_tip+nif_message;
  ntida.uCallbackMessage :=MY_MESSAGE;
  ntida.hIcon :=Application.Icon.Handle ;
  ntida.szTip :='WGL_3A线路录波后台分析系统';
  shell_notifyicona(NIM_ADD,@ntida);
  //setwindowlong(application.Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW); //避免在任务栏中出现
  setwindowlong(Application.Handle,GWL_EXSTYLE,not(getwindowlong(application.Handle,GWL_EXSTYLE)
                or WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW));删除图标程序是:
  shell_notifyicona(NIM_DELETE,@ntida);

解决方案 »

  1.   

    shell_notifyicona(NIM_DELETE, @ntida); 可以删除这个图标!
      

  2.   

    退出时,执行.
    shell_notifyicona(NIM_DELTE,@ntida);
    就可以了.
      

  3.   

    是不是因为系统的问题.
    还有我已经执行了下列程序
    shell_notifyicona(NIM_DELTE,@ntida);
      

  4.   


      处理程序的OnDestroy消息,    procedure TForm1.FormDestroy(Sender: TObject);
        begin
          Shell_NotifyIcon(NIM_DELETE,@ntida);   
        end;
      
      

  5.   

    http://delphi.about.com/library/weekly/aa121801a.htm
    仔细看,文档有part1和part2两部分,非常详细,结帖吧