程序是这样的,
在form的OnResize事件里写到
if Self.WindowState = wsMinimized then Self.visible := false
请教各位!

解决方案 »

  1.   

    问题出现在,最小化的时候我测的WindowState不是wsMinimized状态,就是说最小化时,OnResize事件还保留着原来的窗口状态。
    用其他方法能做吗?(一定可以的,但是我没有学会,好笨)
      

  2.   

    用ShowWindow(applcation.Handle,SW_Hide);
      

  3.   

    重写WM_SYSCOMMAND消息。好像是这个吧。
      

  4.   

    ShowWindow(Handle,SW_Hide);
    ShowWindow(applcation.Handle,SW_Hide);
    两行必须同时使用
      

  5.   

    就用ShowWindow(Application.Handle,SW_HIDE);这个就可以搞定了!
      

  6.   

    预练次功必先自宫,
    即使自宫未必成功,
    若不自宫也可成功。
    哈哈.............
    http://www.3rcn.com
    不想讨论这些问题:有时间请关注:
    http://expert.csdn.net/Expert/topic/1613/1613419.xml?temp=.5817682
    一个Borland中国北京、广州、上海公司都解决不了的问题呀!
    中国还有高手吗???????????????
      

  7.   

    预练次功必先自宫,
    即使自宫未必成功,
    若不自宫也可成功。
    哈哈.............
    http://www.3rcn.com
    不想讨论这些问题:有时间请关注:
    http://expert.csdn.net/Expert/topic/1613/1613419.xml?temp=.5817682
    一个Borland中国北京、广州、上海公司都解决不了的问题呀!
    中国还有高手吗???????????????
      

  8.   

    当然可以在FormActivate里放入这个代码
      

  9.   

    你一点也不笨,不过好多人回答这个问题的时候是在想当然地认为是showWindow用得不对,或是要响应WM_SYSCOMMAND或WM_SIZE消息,实际上根本不是这么一回事。
    你只要把你的隐藏窗口的代码写在Application.OnMinimize的响应函数中就一切OK!
    PS:上回我在大富翁问这个问题,得到一堆错误答案,害得我搞了两天才找出这个窍门。
      

  10.   

    是不是重载Application的OnMinimize事件呢,还是怎么做,我的确是一头雾水
      

  11.   

    大致是这个样子的:
    type
      TForm1 = class(TForm)
        procedure HandleMinimize(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
    在form.create事件中写下:Application.OnMinimize :=HandleMiniMize;
    然后在TForm1.HandleMiniMize函数中写下:
    ShowWindow(Application.Handle, SW_MINIMIZE);  //窗口最小化
       ShowWindow(Application.Handle, SW_hide); //这是隐藏图标,两函数顺序不可颠倒。
      

  12.   

    问题解决了,谢谢各位!给分了!
    具体解决是这样的,在form的事件里定义一个事件,
    procedure OnMiniMized(Sender : TObject);在Form的OnCreate事件加入代码:
    Appilication.OnMiniMized := OnMiniMized;procedure OnMiniMized(Sender : TObject);
    begin
      ShowWindow(Application.Handle, SW_HIDE);
    end;
    //其实就是托盘问题模仿了FoxMail
    显示的时候ShowWindow(Application.Handle, SW_RESTORE);