delphi7中如何设定窗体里的组件随窗体变化?(按比例扩大或缩小)

2024-11-23 21:08:30
推荐回答(3个)
回答1:

dephi7中设定窗体里的组件随窗体变化是用组件的Align属性(对齐方式)Align属性有以下几个选项:alNone(不对齐);alBottom(底部对齐)alClient(剩余区域对齐。具体看帮助。我自己翻译了这个名字);alCustom(自定义对齐。);alLeft(左对齐);alRight(右对齐);alTop(顶部对齐)。
当有一个或多个组件需要随窗体变化宽高时。一般用到Align属性。常用方式是选用几个panel控件。一个顶部对齐。这个panel控件的高度不变。永远在窗体的上边,宽度就会自动变化。然后一个panel设为底部对齐,这个panel控件的高度也不变,永远在底部,一般当做状态栏。然后一个panel设为剩余区域对齐。这个panel的高宽就会自动随窗体变化为剩下区域的位置的高宽。然后放三个panel控件到最后这个panel上。一个左对齐。这个panel控件的宽度不变。永远在窗体的左边,高度就会自动变化。然后一个panel设为右对齐,这个panel控件的宽度也不变,永远在右边。然后一个panel设为剩余区域对齐。这样。我们就把窗口分割为上下左右和中间五个区域。你根据你的窗体设计情况自由裁剪。经组合一般可达到你的要求。
希望有分啊!当然也希望能帮到你!

回答2:

设置Align和Anchors属性

在窗体的OnResize事件里重新设置一个目标控件的Left、Top、Width与Height值即可

如果想要控件的位置变而大小不变,可以这样:
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值.

看看是否对你有帮助

回答3:

恐怕只有写语句来实现了