比如屏幕的宽度是1024*768
而我要求程序form在最大时也是800*600
好像有个语句可以限制它,对不起一时忘记了
谁能提醒一下?

解决方案 »

  1.   

    使用过DELPHI的朋友都会注意到DELPHI本身最上面的窗口,
    当它极大时只占屏幕的一小部分,它是如何实现的呢,请看下面的说明:
    1)在FORM私有声明部分加上如下一行:
    procedureMessage :TWMGetMinMaxInfo ); message WM_GETMINMAXINFO;
    WMGetMinMaxInfo( var
    2)在声明部分加上如下几行:
    procedure TForm1.WMGetMinMaxInfo( var Message :TWMGetMinMaxInfo );
    begin
    with Message.MinMaxInfo^ do
    begin
    ptMaxSize.X := 200; {最大化时宽度}
    ptMaxSize.Y := 200; {最大化时高度}
    ptMaxPosition.X := 99; {最大化时左上角横坐标}
    ptMaxPosition.Y := 99; {最大化时左上角纵坐标}
    end;
    Message.Result := 0; {告诉Windows你改变了 minmaxinfo}
    inherited;
    end;
      

  2.   

    呵呵,找到了,不过还是要谢谢大家
    不想有消息类
    Mainform.Constraints.MaxWidth:=808;
    Mainform.Constraints.MinHeight:=808;
    MainForm.Constraints.MaxHeight:=608;
    MainForm.Constraints.MinHeight:=608;
      

  3.   

    procedure form1.onResize(sender:TObject);
    begin
      if form1.width>800 then form1.width=800;
      if form1.height>600 then form1.height:=600;
    end;
      

  4.   

    procedure TForm1.FormResize(Sender: TObject);
    begin
      if form1.Width>800 then form1.Width:=800;
      if form1.Height>600 then form1.Height:=600;
    end;这样就可以了。