大家来帮帮忙,看看我的代码(50分)

  • 主题发起人 主题发起人 lfpsoft
  • 开始时间 开始时间
L

lfpsoft

Unregistered / Unconfirmed
GUEST, unregistred user!
代码如下:
procedure TfrmPledit.FormResize(Sender: TObject);
begin
if frmPledit.Width < 300 then
frmPledit.Width :=300;
if frmPledit.Height < 115 then
frmPledit.Height :=115;
end;

窗体的四个角和四条边上,窗体的宽度在拉到小于300或高度小于115时,宽度就为300,高度为115,这时就不能再拉。
但是我的代码的效果很不理想。
在FormCanResize事件里我也试过,好像也不得。
应该如何做呢?
 
我记得窗体有一个是否可以修改大小的属性,你可以判断然后设置一下
 
我所要实现的功能就是它放大或缩小都有一定的数值,如宽度每减少或增加都是20,
宽度每次增加或减少都是50
 
下面的代码是比较标准的方法,不仅可以限制窗体的最大化范围,还可以限制窗体的最小化范围

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

type
TForm1 = class(TForm)
private
{ Private declarations }
procedure WMGetMinMaxInfo(var Msg: TWMGetMinMaxInfo); message WM_GETMINMAXINFO;
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}
procedure TForm1.WMGetMinMaxInfo(var Msg: TWMGetMinMaxInfo);
begin
{---当窗体最大化时,窗体的宽度和高度---}
Msg.MinMaxInfo.ptMaxSize.x := 500;
Msg.MinMaxInfo.ptMaxSize.y := 130;

{---当窗体最大化时,窗体左上角的横,纵坐标---}
Msg.MinMaxInfo.ptMaxPosition.x := GetSystemMetrics(SM_CXSCREEN) - 600;
Msg.MinMaxInfo.ptMaxPosition.y := 0;

{---当用鼠标拖拽时,窗体允许的最大宽度和高度---}
Msg.MinMaxInfo.ptMaxTrackSize.x := 500;
Msg.MinMaxInfo.ptMaxTrackSize.y := 130;

{---当用鼠标拖拽时,窗体允许的最小宽度和高度---}
Msg.MinMaxInfo.ptMinTrackSize.x := 275;
Msg.MinMaxInfo.ptMinTrackSize.y := 120;
end;
end.
 
限制大小可以做到了,但如何在拖拽时设定它每一次的宽度和高度呢?
即是每次宽度就加减50,高度就加减30
 
哈哈,问题终于解决了,散分·
 
后退
顶部