托盘图标是属于WINDOWS SHELL内容,你可以看DELPHI5 开发人员指南,有现成的例子

解决方案 »

  1.   

    首先,按步就班作出来,不懂你也得详细说哪里不懂啊,不然别人怎么帮你!如果你不想自己写控件,可以推荐RX系列控件TRXTRAYICON托盘控件可以实现你想要的功能!
      

  2.   

    uses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      Menus,shellapi;
    const
        WM_TrayMessage=WM_User+100;
    type
      TForm1 = class(TForm)
        PopupMenu1: TPopupMenu;
        er1: TMenuItem;
        rer1: TMenuItem;
        rer2: TMenuItem;
        PopupMenu2: TPopupMenu;
        a11: TMenuItem;
        a21: TMenuItem;
        a31: TMenuItem;
        N1: TMenuItem;
        exit1: TMenuItem;
        procedure FormCreate(Sender: TObject);
        procedure FormDestroy(Sender: TObject);
        procedure N21Click(Sender: TObject);
        procedure rer1Click(Sender: TObject);
      protected
          procedure AppMinimized(Sender: TObject);
          procedure WMTrayMessage(var msg:TMessage);message WM_TrayMessage;  private
        { Private declarations }
      public
        { Public declarations }
      end;
    var
      Form1: TForm1;
        NID:TNotifyIconData;
    implementation
    {$R *.DFM}
    { TForm1 }
    procedure TForm1.AppMinimized(Sender: TObject);
    begin
     NID.cbSize:=SizeOf(TNotifyIconData);
      NID.hIcon:=Application.Icon.Handle;
      NID.szTip:= '工程一 ';
      NID.uCallbackMessage:=WM_TrayMessage;
      NID.uFlags:=NIF_ICON or NIF_MESSAGE or NIF_TIP;
      NID.uID:=0;
      NID.Wnd:=Handle;
      Shell_NotifyIcon(NIM_ADD,@NID);
      ShowWindow(Application.Handle,SW_Hide);
    end;
    procedure TForm1.WMTrayMessage(var msg: TMessage);
     var
      p:TPoint;
    begin
      if msg.LParam=WM_LButtonDown then
        begin
          ShowWindow(Application.Handle,SW_Show);
          Application.Restore;
        end
      else if msg.LParam=WM_RButtonDown then
        begin
          GetCursorPos(p);
          PopupMenu1.Popup(p.x,p.y);
        end;
    end;
    procedure TForm1.FormCreate(Sender: TObject);
    begin
     Application.OnMinimize:=AppMinimized;
     AppMinimized(nil);
    end;procedure TForm1.FormDestroy(Sender: TObject);
    begin
     Shell_NotifyIcon(NIM_DELETE,@NID);
    end;procedure TForm1.N21Click(Sender: TObject);
    begin
    ShowWindow(Application.Handle,SW_Show);
      Application.Restore;end;procedure TForm1.rer1Click(Sender: TObject);
    begin
     close;
    end;end.
      

  3.   

    用托盘图标是一个很好的想法。
    你可以在你的图标消息窗口处理函数中添加定时器SetTimer
    然后对定时器消息进行处理,就可以实现你想要的功能了。
    可能你的意思是程序正常运行时,与其他程序一样,但是当用户关闭程序是
    并非将程序真正关闭,而是缩小到托盘图标上,然后当时间满足一定条件时再出来
    提醒用户进行某些操作,是这样吗?
      

  4.   

    我的意思是托盘兔标是独立出来的一个小程序,它在主程序没运行时也能完成提醒
    功能,不知能不能实现,如果不行,就只好用inbud(清风侠)的办法了
      

  5.   

    CooltrayIcon 是最快和最好的
    Get the latest version from http://www3.ewebcity.com/troels/delphi.asp