form's onresize eventprocedure TForm1.FormResize(Sender: TObject);
beginend;

解决方案 »

  1.   

    如果窗体是程序主窗体则在Application的OnMinimize和OnRestore中触发;
    如果是程序的其中一个窗体则在窗体的OnResize、OnActive和OnDeActive事件中触发,在触发的时候需要判断窗体的状态,如当窗体刚创建时会先后触发OnActive、OnResize事件,这时就需要在事件中自己来判断。
      

  2.   

    我理解你的意思,是想捕捉窗口被最大(小)化的事件,FormResize虽然行,但都是执行完后才发生,如想自己控制最好重载WndProc函数,过滤WM_SYSCOMMAND消息或者重载WM_GETMINMAXINFO消息:
    protected
      procedure WndProc(var Message: TMessage); Override;
      procedure WMGetMinMaxInfo(var mmi: TGetMinMaxInfo); message WM_GETMINMAXINFO;
    ...procedure TfrmMain.WndProc(var Message: TMessage);
    begin
      case Message.Msg of
        WM_SYSCOMMAND:
           case Message.WParam of
             SC_MAXIMIZE: //最大化
               //Do something 
               ... 
             SC_MINIMIZE: //最小化
               //Do something 
               ...
             else Inherited;
           end;
        else Inherited;
      end;
    end;