用WindowState:=wsMaximized;最大化窗体 不就行了吗

解决方案 »

  1.   

    用全局变量记下top,left,width,height,要还原时再从变量中取值.
      

  2.   

    form1.windowstate:=wsMaximized; // 最大化
    form1.windowstate:=wsMinimized; //最小化
    form1.windowstate:=wsnormal;    //还原
      

  3.   

    最大化也可用:
    form1.align:=alclient;
      

  4.   

    var
       MinMax:TWindowPlaceMent;
       mRect : TRect;
       State : TWindowState;
    begin
      State := WindowState;          //保存窗口状态
      MinMax.length := Sizeof(MinMax);
      GetWindowPlaceMent(Handle,@MinMax); //取得窗口在Normal状态下的Rect
      mRect := MinMax.rcNormalPosition;  //保存Normal状态下的Rect
      ......
      执行全屏幕代码
      ....
      还原
        With MinMax do
        begin
          Case State of
           wsNormal   : ShowCMD := SW_SHOWNORMAL;
           wsMinimized: ShowCMD := SW_SHOWMINIMIZED;
           wsMaximized: ShowCMD := SW_SHOWMAXIMIZED;
           else ShowCMD := SW_SHOW;
          end;
          rcNormalPosition := mRect;
        end;
      SetWindowPlacement(Handle,@MinMax);
      end;
    给分吧,呵呵。