这个问题一直困扰着我,当运行时把窗体放大,窗体其丑无比!!怎么处理??

解决方案 »

  1.   

    zsy_good(只要坚定不移的走下去,那一定会成功)说了些什么啊?
    这个问题也一直困饶着我。
      

  2.   

    建一窗体,在窗体上加3个可视控件,在var段定义如下变量:
      x1,y1:integer;
      cl,ct,cw,ch:array [0..2] of real;//数组上限由可视控件数目而定在窗体的OnCreate事件输入如下代码:
    procedure TForm1.FormCreate(Sender: TObject);
    var i:integer;
    begin
    //取窗体的原始大小
    x1:=form1.ClientWidth;
    y1:=form1.ClientHeight;
    //取各控件的原始大小和位置
    for i:=0 to 2 do
    begin
      cw[i]:=form1.Controls[i].Width;
      cl[i]:=form1.Controls[i].Left;
      ch[i]:=form1.Controls[i].Height;
      ct[i]:=form1.Controls[i].Top;
    end;
    end;在窗体的OnResize事件输入如下代码:
    procedure TForm1.FormResize(Sender: TObject);
    var x,y,i:integer;
    begin
    x:=form1.ClientWidth;
    y:=form1.ClientHeight;
    for i:=0 to 2 do
    begin
       cl[i]:=cl[i]*x/x1;
       ct[i]:=ct[i]*y/y1;
       form1.Controls[i].Left:=round(cl[i]);
       form1.Controls[i].Top:=round(ct[i]);
       cw[i]:=cw[i]*x/x1;
       form1.Controls[i].Width:=round(cw[i]);
       ch[i]:=ch[i]*y/y1;
       form1.Controls[i].Height:=round(ch[i]);
    end;
    x1:=x;
    y1:=y;
    end;
    以上在WIN XP,DELPHI 7下调试通过。
      

  3.   

    这个问题我也不懂,要是有那为大虾知道如何解决,请告诉我谢谢了。[email protected]
      

  4.   

    在窗体的OnCreate事件中保存窗口的原始的大小
    在窗体的OnResize事件中取现在窗口的大小,与先前保存的窗口的大小相减,将差值加给窗口各控件。并现在窗口的大小保存以便在下一次OnResize事件中使用。
    代码gdwyh(神州大侠) 已给出。