api函数Shell_NotifyIcon ,具体情况,看win32 api帮助
================================================================CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!★  浏览帖子速度极快![建议系统使用ie5.5以上]。 ★  多种帖子实现界面。 
★  保存帖子到本地[html格式]★  监视您关注帖子的回复更新。
★  可以直接发贴、回复帖子★  采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录! 
★  支持在线检测程序升级情况,可及时获得程序更新的信息。★★ 签名  ●  
     可以在您的每个帖子的后面自动加上一个自己设计的签名哟。Http://www.ChinaOK.net/csdn/csdn.zip
Http://www.ChinaOK.net/csdn/csdn.rar
Http://www.ChinaOK.net/csdn/csdn.exe    [自解压]

解决方案 »

  1.   

    把分全部给我吧,然后发信给我,我给你全部源码y
    [email protected]
    [email protected]
      

  2.   

    呵呵,好好看看下面的代码吧!
    他是我的程序中的一部分,分享一下:
    **********************************************
    ...
        MYTRAY:TNotifyIconData;
        procedure WMMYTRAYCALLBACK(var MSG:TMESSAGE);message WM_MYTRAYCALLBACK;
        procedure WMSysCommand(var Msg: TWMSysCommand);message WM_SYSCOMMAND;
    ...
    procedure TfrmICBSServerMain.FormCreate(Sender: TObject);
    begin
        Application.ShowMainForm:=FALSE;
        with MYTRAY do
        begin
            cbSize:=SIZEOF(TNotifyIconData);
            Wnd:=Handle;
            uID:=1;
            uFlags:=NIF_ICON OR NIF_TIP OR NIF_MESSAGE;
            uCallbackMessage:=WM_MYTRAYCALLBACK;
            hIcon:=Application.Icon.Handle;
            szTip:='Server';
        end;
        Shell_NotifyIcon(NIM_ADD,@MYTRAY);
    end;
    ...procedure TfrmICBSServerMain.FormDestroy(Sender: TObject);
    begin
        Shell_NotifyIcon(NIM_DELETE,@MYTRAY);
    end;
    ...
    procedure TfrmICBSServerMain.WMMYTRAYCALLBACK(var MSG: TMESSAGE);
    var
        p:TPoint;
    begin
        case MSG.LParam of
        WM_RBUTTONDOWN:
        begin
            GetCursorPos(p);
            PopupMenu1.Popup(p.x,p.y);
        end;
        WM_LBUTTONDOWN:
        begin
            Visible:=not Visible;
            Application.ShowMainForm:=Visible;
            SetForegroundWindow(Handle);
        end;
        end;
    end;*********************************************
    怎么样?欢呼吧!
      

  3.   

    请问 fwjingling(蓝精灵) :以下语句好象通不过呀, 说不认识 WM_MYTRAYCALLBACK
      uCallbackMessage:=WM_MYTRAYCALLBACK;我已经加了一个头文件了,是SHELL的,还有什么头文件吗,
      

  4.   


    以下语句好象通不过呀, 说不认识 WM_MYTRAYCALLBACK
      uCallbackMessage:=WM_MYTRAYCALLBACK;我已经加了一个头文件了,是SHELL的,还有什么头文件吗,在下面能出现一个图标
    可不能执行程序,我把它屏蔽通过编译后
      

  5.   

    unit ...;interfaceuses ...........const
      WM_TRAYNOTIFY = WM_USER + 1024; //在此添加兩行
      

  6.   

    //不好意思錯了
    const
      WM_MYTRAYCALLBACK = WM_USER + 1024; //在此添加兩行
      

  7.   

    //程序最小化,在任务栏显示图标
    procedure TControlE.MinImageClick(Sender: TObject);
    var
    Icon:TIcon;
    iconpath:string; //图标文件路径
    begin
    iconPath:=File_path+'\Cool.ico';
    listfrm.Hide;
    Icon:=TIcon.Create; //Icon变量用来装入任务栏图标
    Icon.LoadFromFile(iconpath);
    new(pTaskBarIcon);
    with pTaskBarIcon^ do //给pTaskBarIcon赋值
    begin
    cbSize:=sizeof(TNotifyIconData);
    Wnd:=ControlE.WindowHandle;
    uID:=0;
    uFlags:=NIF_ICON or NIF_MESSAGE or NIF_TIP;
    uCallbackMessage:=WM_USER; //当在任务栏图标上发生鼠标事件时,// 向Windows发送标准消息WM_USERhIcon:=Icon.Handle;StrCopy(szTip,'酷音酷放');end;Shell_NotifyIcon(NIM_ADD,pTaskBarIcon); //给通知域添加图标ControlE.Visible:=false; //使音乐播放器窗口不可见
    // inherited; //将继承Windows处理WM_SYSCOMMAND时的方法end;
    这是缩小为图标,鼠标响应,弹出菜单,你自己会做了吧!
      

  8.   

    以下是我改进的,当窗体隐藏或显示时,能看到它从右下角出来或缩到右下角的效果!
    unit BarIcon;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      Menus, ShellAPI, StdCtrls;
    const
      mousemsg = wm_user + 1; //自定义消息,用于处理用户在图标上点击鼠标的事件
      iid = 100; //用户自定义数值,在TnotifyIconDataA类型全局变量ntida中使用type
      TZoomAction = (zaMinimize, zaMaximize); //放缩效果常量
      TForm1 = class(TForm)
        PopupMenu1: TPopupMenu;
        N1: TMenuItem;
        N2: TMenuItem;
        Exit: TButton;
        procedure FormCreate(Sender: TObject);
        procedure ExitClick(Sender: TObject);
        procedure FormClose(Sender: TObject; var Action: TCloseAction);
        procedure FormShow(Sender: TObject);
      private
        //自定义消息处理函数,处理鼠标点击图标事件
        procedure mousemessage(var message: tmessage); message mousemsg;
        //处理最小化事件
        procedure WMSysCommand(var Message: TMessage); message WM_SYSCOMMAND;  public
        { Public declarations }
      end;var
      Form1: TForm1;
      ntida: TNotifyIcondataA;
      //用于增加和删除系统状态图标implementation{$R *.DFM}procedure ZoomEffect(theForm: TForm; theOperation: TZoomAction);
    var
      rcStart: TRect;
      rcEnd: TRect;
      rcTray: TRect;
      hwndTray: hWnd;
      hwndChild: hWnd;
    begin
    { 寻找系统托盘区的位置}
      hwndTray := FindWindow('Shell_TrayWnd', nil);
      hwndChild := FindWindowEx(hwndTray, 0, 'TrayNotifyWnd', nil);
      GetWindowRect(hwndChild, rcTray);{点击用于最大化/最小化,并切换起始/结束}
      if theOperation = zaMinimize then
      begin
        rcStart := theForm.BoundsRect;
        rcEnd := rcTray;
      end
      else
      begin
        rcEnd := theForm.BoundsRect;
        rcStart := rcTray;
      end;{ 以下是关键的部分... }
      DrawAnimatedRects(theForm.Handle, IDANI_CAPTION, rcStart, rcEnd)
    end;procedure TForm1.WMSysCommand(var Message: TMessage);
    begin
      if Message.WParam = SC_ICON then //最小化了
      begin
        close;
      end
      else
        inherited;
    end;procedure TForm1.mousemessage(var message: tmessage);
    var
      mousept: TPoint; //鼠标点击位置
    begin
      inherited;
      if message.LParam = wm_rbuttonup then //用鼠标右键点击图标
      begin
        getcursorpos(mousept); //获取光标位置
        popupmenu1.popup(mousept.x, mousept.y);
        //在光标位置弹出选单
      end;
      if message.LParam = wm_lbuttonup then //用鼠标左键点击图标
      begin
        //显示应用程序窗口
        // ShowWindow(Handle, SW_SHOW);
        //在任务栏上显示应用程序窗口
        //ShowWindow(Application.handle, SW_SHOW);
        SetWindowLong(Application.Handle, GWL_EXSTYLE,
          not (GetWindowLong(Application.handle, GWL_EXSTYLE)
          or WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW));
          hide;//起到动态效果
          show;
      end;
      message.Result := 0;
    end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      Action := caNone; //不对窗体进行任何操作
      ZoomEffect(Self, zaMinimize); //进行放缩
      ShowWindow(Handle, SW_HIDE); //隐藏主窗体
    //隐藏应用程序窗口在任务栏上的显示
      ShowWindow(Application.Handle, SW_HIDE);
      SetWindowLong(Application.Handle, GWL_EXSTYLE,
        GetWindowLong(Application.handle, GWL_EXSTYLE)
        or WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW);end;procedure TForm1.FormCreate(Sender: TObject);
    begin
      //不在任务栏中出现
      SetWindowLong(Application.Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW);
      ntida.cbSize := sizeof(tnotifyicondataa); //指定ntida的长度
      ntida.Wnd := handle; //取应用程序主窗体的句柄
      ntida.uID := iid; //用户自定义的一个数值,在uCallbackMessage参数指定的消息中使
      ntida.uFlags := nif_icon + nif_tip + nif_message;
      //指定在该结构中uCallbackMessage、hIcon和szTip参数都有效
      ntida.uCallbackMessage := mousemsg;
      //指定的窗口消息
      ntida.hIcon := Application.Icon.handle;
      //指定系统状态栏显示应用程序的图标句柄
      ntida.szTip := 'Icon';
      //当鼠标停留在系统状态栏该图标上时,出现该提示信息
      shell_notifyicona(NIM_ADD, @ntida);
      //在系统状态栏增加一个新图标
    end;procedure TForm1.ExitClick(Sender: TObject);
    begin
      //为ntida赋值,指定各项参数
      ntida.cbSize := sizeof(tnotifyicondataa);
      ntida.wnd := handle;
      ntida.uID := iid;
      ntida.uFlags := nif_icon + nif_tip + nif_message;
      ntida.uCallbackMessage := mousemsg;
      ntida.hIcon := Application.Icon.handle;
      ntida.szTip := 'Icon';
      shell_notifyicona(NIM_DELETE, @ntida);
      //删除已有的应用程序图标
      Application.Terminate;
      //中断应用程序运行,退出应用程序
    end;procedure TForm1.FormShow(Sender: TObject);
    begin
      ZoomEffect(Self, zaMaximize); //进行放缩
    end;
      

  9.   

    用rx控件的trayicon吧,没必要这么麻烦
      

  10.   

    这方面的贴子很多,不过你需要了解一下windows消息机制。
      

  11.   

    这个东西太容易做了,你应该自己去找的哦.太依赖大家了,嘿嘿.
    ================================================================CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!★  浏览帖子速度极快![建议系统使用ie5.5以上]。 ★  多种帖子实现界面。 
    ★  保存帖子到本地[html格式]★  监视您关注帖子的回复更新。
    ★  可以直接发贴、回复帖子★  采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录! 
    ★  支持在线检测程序升级情况,可及时获得程序更新的信息。★★ 签名  ●  
         可以在您的每个帖子的后面自动加上一个自己设计的签名哟。Http://www.ChinaOK.net/csdn/csdn.zip
    Http://www.ChinaOK.net/csdn/csdn.rar
    Http://www.ChinaOK.net/csdn/csdn.exe    [自解压]