在窗体RESIZE后, 要使窗体上所有控件自动按比例调整大小,使之仍然保持相对位置.求实现代码!

解决方案 »

  1.   

    procedure TForm1.FormResize(Sender: TObject);
    Var i:integer;
    begin
    for i:=0 to self.ComponentCount-1 do
    Begin
      
    end;
    end;实现我忘了。希望能给你写帮助
      

  2.   

    没做过,不过是不是类似于这样:
    procedure TForm1.FormResize(Sender: TObject);
    Var
      i:integer;
    begin
      for i:=0 to self.ComponentCount-1 do
      Begin
        TControl(self.Components[i]).Width := self.Width div 10;
      end;
    end;
    可以根据你的需要再加上left,top,height的值...
    不知道对不对
      

  3.   

    抱歉,抱歉,不应该用Component,因为它把非可视的都算上了,改正为
    procedure TForm1.FormResize(Sender: TObject);
    Var
      i:integer;
    begin
      for i:=0 to self.ControlCount - 1 do
      Begin
        self.Controls[i].Width := self.Width div 10;
      end;
    end;
      

  4.   

    多数控件都有Anchors属性,你看看调整它,会有意想不到的结果哦
      

  5.   

    procedure TForm1.FormResize(Sender: TObject);
    Var
      i:integer;
    begin
      for i:=0 to self.ControlCount - 1 do
      Begin
        self.Controls[i].ScaleBy(2,1);
      end;
    end;