我没有尝试过,所以认为很难!请问如何把一个delphi做好的exe文件让他在运行的时候,最小化就像是qq那样能放在任务栏的右边,成为一个小的图标!
我不知道怎么下手阿!求救阿!

解决方案 »

  1.   

    你应该把这个问题放到SDK-API中去啊,主要是用到一些API函数。
    delphibbs里有答案的。搜索“托盘”应该可以找到的
      

  2.   

    那里可以下载得到阿?我找了半天都没有可以下载的地方!如果你们有,发给我吧!最好有使用方法阿,不然我又晕了!
    [email protected]
      

  3.   

    procedure TAlertServer.FormCreate(Sender: TObject);
    var
        nid: TNotifyIconData;
    begin   //To Create TrayIcon
        with Nid do
        begin
            cbSize := sizeof(nid);
            wnd := Handle;
            uID := 0;
            hIcon := Application.Icon.Handle;
            szTip := 'Server Listening';
            uCallbackMessage := MY_MESSAGE;
            uFlags := NIF_ICON OR NIF_TIP OR NIF_MESSAGE;
            if not Shell_NotifyIcon(NIM_ADD,@nid) then
                Application.Terminate;
        end;
        //To hide the application on TaskBar
        Application.ShowMainForm := False;
    end;
      

  4.   

    上www.51delphi.com下载 rxlib组件,里面有个rxtrayicon
      

  5.   

    首先在一个空的程序中用image editor编辑一个图标文件命名为trayicon,然后保存到工程中;
    重新打开项目文件,用先面的代码就可实现应用程序图标在任务栏了
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs,shellapi;
    const
      //定义用到的图标的ID
      TrayIconId=1;
    type
      TForm1 = class(TForm)
        procedure FormCreate(Sender: TObject);
        procedure FormClose(Sender: TObject; var Action: TCloseAction);
      private
        //程序图标
        AppIcon:TIcon;
        //定义一个TNotifyIconData类型的变量,通过操作它来完成程序图标的设置
        nid:TNOtifyIconData;
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
    begin
      //将trayicon调用到程序中,如果失败终止程序
      appicon:=Ticon.Create;
      appicon.Handle:=loadIcon(hinstance,'trayicon');
      if appicon.Handle=0 then
      begin
        messagebox(handle,'不能打开图标文件!','提示',mb_ok);
        application.Terminate;
        exit;
      end;
      //将nid数据结构初始化
      with nid do
      begin
        cbsize:=sizeof(tnotifyicondata);
        wnd:=handle;
        uId:=trayiconid;
        uflags:=NIF_MESSAGE OR NIF_ICON OR NIF_TIP;
        UCALLBACKMESSAGE:=0;
        hicon:=appicon.Handle;
        strpcopy(sztip,'the test app');
      end;
      //加载图标
      shell_notifyicon(NIM_ADD,@nid);
    end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      //推出程序时候删除任务栏的图标
      shell_notifyicon(NIm_delete,@nid);
      appicon.Free;
    end;end.