在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.但是该更改未反映在表格的实际高度。
我做错了什么?
答案 0 :(得分:1)
在formresize中做事情变得棘手,你正在改变一些可能引发调整大小事件本身的东西,这可能是,痒痒?
无论如何,只需将minheight和maxheight设置为200,这应该可以解决问题。