拉撒路表单通过代码调整大小



在Arch Linux上,使用Lazarus 1.6.4,我试图保持表单的高度不变。

下面的代码是一个最小的示例:

unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs;
type
{ TForm1 }
TForm1 = class(TForm)
procedure FormDblClick(Sender: TObject);
procedure FormResize(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
h : Integer;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.FormDblClick(Sender: TObject);
begin
ShowMessage(h.ToString);
end;
procedure TForm1.FormResize(Sender: TObject);
begin
h := Form1.Height;
Form1.Height:=200; //please note this line
end;
end.   

如果我注释掉标记的行,我可以通过双击它来查看表单高度的变化。

但是,如果标记线存在,则窗体仍会更改其高度,但不会返回到 200。双击 from 显示表单高度更改为 200。但这种变化并没有反映在表单的实际高度上。

我做错了什么?

在 formresize 中做事变得痒痒,您正在更改一些可能会触发调整大小事件本身的东西,这可能是,嗯,

痒痒的??无论如何,只需将最小高度和最大高度设置为 200,这应该就可以了。

最新更新