我想在一个非主窗口最小化前执行一段代码,而且主窗口与非主窗口不是父子关系
该如何实现呢。如果是主窗口的话可以用Application.OnMinimize,非主窗口该如何解决这个问题呢?

解决方案 »

  1.   

    在form的ondeactive是建立处理,但是关闭等也会触发这个事件,需要自己处理一下。
      

  2.   


    窗口将响应WM_SYSCOMMAND消息,Message.CmdType=SC_MINIMIZE 
    想避免窗口最小化,则继承该消息响应,并在 CmcType=SC_MINIMIZE 
    时不做处理,例子如下: 
    private 
    procedure WMSyscommand(var Message: TWMSysCommand); message WM_SYS 
    COMMAND; 
    ... ... 
    implementation 
    procedure TFormXXX.WMSyscommand(var Message: TWMSysCommand); 
    begin 
    case Message.CmdType of 
    SC_MINIMIZE: 
           //添加代码   
    else inherited; 
    end; 
    end;
      

  3.   

    同意楼上guothreelove2003() 的 
    首先拦截消息,然后在 执行添加需要执行的代码……