没有自动变化的办法,只能自己写程序响应WM_SIZE消息,然后计算控件的位置和大小,然后MoveWindow等等

解决方案 »

  1.   

    没有自动变化的办法,只能自己写程序响应WM_SIZE消息,然后计算控件的位置和大小,然后MoveWindow等等
      

  2.   

    难道非要这么做,那不是多了很多的代码,DELPHI的作者不会连这个都没考虑到吧?
    有没有一个过程或是函数什么的呢?比如说AUTOSIZE?
      

  3.   

    不用写代码,只要在设计期,更改所有组件的Anchors属性就可以了!!
      

  4.   

    Anchors 属性好像不能都设为True,具体怎么设置,再仔细试一下!
      

  5.   

    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, Buttons;type
      TForm1 = class(TForm)
        Button1: TButton;
        SpeedButton1: TSpeedButton;
        procedure FormResize(Sender: TObject);
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
        FWidth: Integer;
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormResize(Sender: TObject);
    begin
      Self.ScaleBy(Width, FWidth);
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
      FWidth := Width;
    end;end.
      

  6.   

    ANCHOR有4个属性,具体怎么改呢?
      

  7.   

    procedure TForm1.FormResize(Sender: TObject);
    begin
      ScaleBy(Width, FWidth);
      FWidth := Width;
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
      FWidth := Width;
    end;
      

  8.   

    我的form中有很多的控件,都象这样的话,那不是要很多?
      

  9.   

    ????
    不管你的控件多少呀
    ScaleBy就是按比例缩放
      

  10.   

    Width and Fwidth具体怎么赋值呢?
      

  11.   

    设置个控件的ALIGN,或者放到PANEL里,再设置PANEL的ALIGN
      

  12.   

    procedure TForm1.FormCreate(Sender: TObject);
    var
      I: Integer;
    begin
    //可是位置不会变
      for I := 0 to ControlCount - 1 do
        TControl(Controls[I]).Anchors := [akLeft, akTop, akRight, akBottom];
    end;
      

  13.   

    procedure TForm1.FormCreate(Sender: TObject);
    begin
      FWidth := Width;
    //          ~~~~~窗体的宽度 需要赋值吗?
    //我的方法并不是完善的
    //你要考虑高度变化
    end;
      

  14.   

    TO:zswang      当高度变化时,该怎么做?另外,在Form的onResize时调用scaleby会使得Form的闪烁感很强,这该怎么解决呢?