大哥,救济

解决方案 »

  1.   

    1、设置Align值
    2、在窗体的OnResize事件里重新设置一个目标控件的Left、Top、Width与Height值
    procedure TForm1.FormResize(Sender: TObject);
    begin
      Memo1.Left:=10;
      Memo1.Width:=ClientWidth-Memo1.Left*2;
      Memo1.Top:=10;
      Memo1.Height:=ClientHeight-Memo1.Top*2;
    end;
      

  2.   

    我靠,我的回复哪里去了?
    刚才回复了个“设置Align和Anchors属性”,我的回复居然不翼而飞?
      

  3.   

    如果想要控件的位置变而大小不变,可以这样:
    procedure TForm1.FormResize(Sender: TObject);
    begin  Button1.Left:=round(left*clientwidth/fwidth);
      Button1.Top:=round(top*clientheight/fheight);end;
    其中left,top 是最初button1的left与top值,fwidth,fheight是最初form1的width与height值.
      

  4.   

    通过Align属性来修改,给你个例子,
    unit ex1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, XPMan;type
      TForm1 = class(TForm)
        Button1: TButton;
        XPManifest1: TXPManifest;
        procedure FormResize(Sender: TObject);
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}
    // 处理窗体大小变化时的事件
    procedure TForm1.FormResize(Sender: TObject);
    begin
      button1.Left := 0;
      button1.Top := 0 ;
      button1.Height := ClientRect.Bottom-Clientrect.Top;
      button1.Width :=  ClientRect.Right-ClientRect.Left;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      Close;
    end;end.