我的窗体里有很多控件,如何比较好的控制他们,让他们能随窗体大小改变而改变。

解决方案 »

  1.   

    通用过程
    procedure FormAutoSize(AOwner: TComponent; ScreenWidth,
      ScreenHeigth: Integer);
    var
      OldFormWidth:integer;
    begin
      if screen.Width <> screenwidth then
      begin
        oldformwidth:=TForm(AOwner).Width;
        TForm(AOwner).Height:=longint(TForm(AOwner).Height) * longint(screen.height) div ScreenHeigth;
        TForm(AOwner).Width:=longint(TForm(AOwner).Width) * longint (screen.width) div screenwidth;
        TForm(AOwner).ScaleBy(screen.Width+5,screenwidth);
        TForm(AOwner).Font.Size:=(TForm(AOwner).Width div OldFormWidth) * TForm(AOwner).Font.Size;
      end;
    end;
    ////////////
    ScreenWidth,  ScreenHeigth 填入当前开发环境的分辨率.
    Aower 窗体
      

  2.   

    在窗体的OnResize事件里自己添加一个过程,根据窗体的大小,动态改变控件的大小.