如何实现Delphi 开发环境的那种模式:
即在应用程序中,弹出的新窗口点击最大化按钮后,窗体最大化后,不覆盖主窗体
的显示,新窗口显示在主窗口的下面。

解决方案 »

  1.   

    procedure TForm_Monitor.RestrictMaximize(var Message: TWMSyscommand);
    begin  if Message.CmdType = SC_MAXIMIZE then
      begin
        with Form_Monitor do
        begin
          Left :=  Form_Main.Left;
          Height := screen.Height - Form_Main.Height;
          Width := screen.Width;
          Top := Form_Main.Top + Form_Main.Height;
        end;
      end
      else
        inherited;
    end;
    效果有了,可是窗体最大化后,最大化按钮的图标没变?????
    谁告诉一下,谢谢
      

  2.   

    把一个窗体Form1的FormStyle设置为:fsMDIForm
    另一个窗体Form2的FormStyle设置为:fsMDIChild
    Form2就会在Form1的空白区显示.
      

  3.   

    ......type
      TFmIsDoInvoice_Pay = class(TForm)
        ......
        procedure WM_Size(var Message: TWMSize);message WM_SIZE;
      private
        { Private declarations }
      public
        { Public declarations }
      end;implementation{$R *.dfm}......procedure TForm.WM_Size(var Message: TWMSIZE);
    begin
      with Self do
      begin
        Left :=  0;
        Height := Screen.Height - 120 - 30;  //120 为主窗体,30 为任务栏
        Width := Screen.Width;
        Top := 120;   //120 为主窗体
      end;  inherited;
    end;......
      

  4.   

    不好意思上面第三行的窗体类应该是TForm
      

  5.   

    procedure TForm_Monitor.RestrictMaximize(var Message: TWMSyscommand);
    begin  if Message.CmdType = SC_MAXIMIZE then
      begin
        with Form_Monitor do
        begin
          Left :=  Form_Main.Left;
          Height := screen.Height - Form_Main.Height;
          Width := screen.Width;
          Top := Form_Main.Top + Form_Main.Height;
        end;
        
        Message.Result := 0;        //加这一句,意思为:告诉Windows你改变 minmaxinfo  end
      else
        inherited;
    end;