代码之家  ›  专栏  ›  技术社区  ›  Sean

Lazarus表单按代码调整大小

  •  1
  • Sean  · 技术社区  · 9 年前

    下面的代码是一个简单的示例:

    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.   
    

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

    我做错了什么?

    1 回复  |  直到 9 年前
        1
  •  1
  •   juus    9 年前

    在formresize中做事情会很棘手,你正在更改一些可能会触发resize事件本身的事情,这可能很棘手??

    无论如何,只要将minheight和maxheight设置为200,就可以了。