我的程序中,在非主窗体的最小化时。application.mimimize不起作用。因为最小化老在左下角。所以用了如下代码
procedure TForm1.Proc(var Msg: TMessage);
begin
  if Msg.Msg  = WM_SYSCOMMAND then
  begin
    if Msg.WParam=SC_MAXIMIZE then
      Caption := '最大化了'
    else if Msg.WParam=SC_MINIMIZE then
     application.Minimize;
  end;
  WndProc(Msg);
end;
procedure Tform1.FormCreate(Sender: TObject);
begin
Self.WindowProc := Proc;
end;但是application.mimimize不起作用,如果我在放其它语句都起作用。
后来我直接放个按钮,按钮事件就是application.Minimize;但是依旧不起作用,我想问问,这是什么原因。我为了搞清出,这个窗体中什么都没放,但还是不起作用。这是什么原因哪,谢谢大家。

解决方案 »

  1.   

    有用其他第三方控件吗?小心别的控件拦截了application.Minimize
      

  2.   

    没有,我就怕有什么拦截了它,所以删除了窗体上所有的控件来测试,窗体上只有一个button。应该事没有被拦截,因为,如果我在上边得代码上改成
    if Msg.WParam=SC_MAXIMIZE then
          Caption := '最大化了'
        else if Msg.WParam=SC_MINIMIZE then
         Caption := '小了';
    就正常。应该是得到了消息,但是application.mimimize不起作用。而且我在把button的click事件直接写为,application.minimize。程序运行后点击也不起作用
      

  3.   

    http://www.tomore.com/dispdocnew.php?id=29123里面有相关的处理方法!
    稍微改一下就可以达到你要的东西!
      

  4.   

    你一共几个窗体?当前窗体是那个?是TForm1的实体么?
    你是否做了跟踪?确认已经进入Proc?是否得到了SC_MINIMIZE 消息?
      

  5.   

    总共三个窗体,确定已经得到了sc_mimmize消息。但还是没用