我想将窗体最小化到任务栏右下角的地方,当就不知道用CoolTrayIcon怎么样进行设置,CoolTrayIcon1已经安装好啦,感谢尽快回复!

解决方案 »

  1.   

    刚才试了一下,加上之后就会显示小图标了,但是无法最小化到小图标上面,我看那个coolTrayIcon有个MinimizeToTray,设置为true了,但是点最小化的时候还是不行
      

  2.   

    截获最小化消息,在处理完最小化消息之后,把主窗体隐藏,代码供参考procedure TMainForm.WMSysCommand(var msg: TWMSysCommand); 
    begin 
      inherited;
      if msg.CmdType and $FFF0 = SC_MINIMIZE then
      begin    
        hide;
      end; 
    end; 
      

  3.   

    给你一段代码,希望对你有用unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, Menus, CoolTrayIcon, StdCtrls;type
      Tmain = class(TForm)
        CoolTrayIcon1: TCoolTrayIcon;
        PopupMenu1: TPopupMenu;
        showfrm11: TMenuItem;
        showfrm21: TMenuItem;
        exit1: TMenuItem;
        showmain1: TMenuItem;
        Label1: TLabel;
        procedure showfrm11Click(Sender: TObject);
        procedure showfrm21Click(Sender: TObject);
        procedure exit1Click(Sender: TObject);
        procedure showmain1Click(Sender: TObject);
        procedure CoolTrayIcon1Click(Sender: TObject);
        procedure FormKeyDown(Sender: TObject; var Key: Word;
          Shift: TShiftState);
        procedure FormCreate(Sender: TObject);
        procedure FormDestroy(Sender: TObject);
      private
        { Private declarations }
        procedure showhideForm;
        procedure wmhotkey(var msg:tmessage);message wm_hotkey;
      public
        { Public declarations }
      end;var
      main: Tmain;
      HotKeyId: Integer; implementationuses unit2,unit3;{$R *.dfm}{TForm1}procedure Tmain.showfrm11Click(Sender: TObject);
    begin
      try
        form1:=Tform1.Create(nil);
        form1.ShowModal;
      finally
        form1.Free;
      end;
    end;procedure Tmain.showfrm21Click(Sender: TObject);
    begin
      try
        form2:=Tform2.Create(nil);
        form2.ShowModal;
      finally
        form2.Free;
      end;
    end;procedure Tmain.exit1Click(Sender: TObject);
    begin
      close;
    end;procedure Tmain.showmain1Click(Sender: TObject);
    begin
      showhideForm;
    end;procedure Tmain.CoolTrayIcon1Click(Sender: TObject);
    begin
      showhideForm;
    end;procedure Tmain.showhideForm;
    begin
        //显示-隐藏主窗体
      if CoolTrayIcon1.MinimizeToTray then
      begin
        CoolTrayIcon1.MinimizeToTray:=False;
        CoolTrayIcon1.ShowMainForm;
      end
      else
      begin
        CoolTrayIcon1.MinimizeToTray:=True;
        Application.Minimize;
        CoolTrayIcon1.HideMainForm;
      end;
    end;procedure Tmain.FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
    //  if (shift = [ssALT]) and (key = VK_F9) then
    //  begin
    //    showhideForm;
    //  end;
    end;procedure Tmain.wmhotkey(var msg: tmessage);
    begin
    //   if   msg.wparam=6523   then
    //   if msg.LParam=6523 then
    //              自己写事件
    //     showhideForm;
       if (Msg.LparamLo = MOD_ALT) AND (Msg.LParamHi = VK_F8 )then // 假设热键为ALT+F8
         showhideForm;
    end;procedure Tmain.FormCreate(Sender: TObject);
    begin
    //  registerhotkey(handle,1002,0,vk_f10);//注册F10为热键
    //  registerhotkey(handle,1003,mod_control,65);//注册ctrl+a
    //  registerhotkey(handle,1004,mod_control+mod_alt,ord('a'));//注册ctrl+alt+a
     // RegisterHotKey(Self.Handle,6523,MOD_CONTROL,ord('w'));
    //  registerhotkey(handle,1001,mod_win,65);//注册win+a,win   就是ctrl和alt中间的键
      HotKeyId:=GlobalAddAtom('MyHotKey') - $C000;
      RegisterHotKey(Handle, hotkeyid, MOD_ALT, VK_F8); 
    end;procedure Tmain.FormDestroy(Sender: TObject);
    begin
    //  unregisterhotkey(handle,6523);//释放注册的热键
      UnRegisterHotKey(handle, HotKeyId); //注销HotKey, 释放资源。
    end;end.
      

  4.   

    自己写事件代码,比如加入一个Button1,Button1.Caption:= '隐藏窗口';
    然后写这个Button1的点击事件,内容为:  CoolTrayIcon1.HideMainForm;
      

  5.   

    CoolTrayIcon控件有没有版本的限制,D6D7都可以使用吗?