急!!! 如何限制窗体的大小(5分)

  • 主题发起人 主题发起人 青云
  • 开始时间 开始时间

青云

Unregistered / Unconfirmed
GUEST, unregistred user!
我做软件 习惯上 窗体是可以由客户自由改变大小的。但是如果把窗体的宽度或高度改的太小,以致于有些控件都看不见了。所有我想要限制窗体的最小宽度和高度。

我想了很久,想不错好的方法。
下面是我用的方法,我想应该有更好的方法。
procedure Tform1.FormResize(Sender: TObject);
begin
if self.Width<550 then
self.Width:=700;
end;
 
用消息作,只是个例子
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls;

type
TForm1 = class(TForm)
redt1: TRichEdit;
private
{ Private declarations }
procedure WMGetMinMaxInfo(var Message: TWMGetMinMaxInfo); message WM_GETMINMAXINFO;

public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

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;

end.
 
我觉得楼主的方法就可以了,我也是这样做。
消息用在这里感觉太浪费,写那么多,好麻烦。
 
form的属性
constraints
maxheight 0 不限制
maxwidth
minheight
minwidth
 
3种方法了
 
怎么要这样做?不是有个constraints属性能设置窗口最大的限制和最小的限制吗?
 
直接设置属性就可以了
 
还是属性设置好呀!
 
后退
顶部