delphi7中如何设定窗体里的组件随窗体变化?(按比例扩大或缩小) 5
3个回答
展开全部
dephi7中设定窗体里的组件随窗体变化是用组件的Align属性(对齐方式)Align属性有以下几个选项:alNone(不对齐);alBottom(底部对齐)alClient(剩余区域对齐。具体看帮助。我自己翻译了这个名字);alCustom(自定义对齐。);alLeft(左对齐);alRight(右对齐);alTop(顶部对齐)。
当有一个或多个组件需要随窗体变化宽高时。一般用到Align属性。常用方式是选用几个panel控件。一个顶部对齐。这个panel控件的高度不变。永远在窗体的上边,宽度就会自动变化。然后一个panel设为底部对齐,这个panel控件的高度也不变,永远在底部,一般当做状态栏。然后一个panel设为剩余区域对齐。这个panel的高宽就会自动随窗体变化为剩下区域的位置的高宽。然后放三个panel控件到最后这个panel上。一个左对齐。这个panel控件的宽度不变。永远在窗体的左边,高度就会自动变化。然后一个panel设为右对齐,这个panel控件的宽度也不变,永远在右边。然后一个panel设为剩余区域对齐。这样。我们就把窗口分割为上下左右和中间五个区域。你根据你的窗体设计情况自由裁剪。经组合一般可达到你的要求。
希望有分啊!当然也希望能帮到你!
当有一个或多个组件需要随窗体变化宽高时。一般用到Align属性。常用方式是选用几个panel控件。一个顶部对齐。这个panel控件的高度不变。永远在窗体的上边,宽度就会自动变化。然后一个panel设为底部对齐,这个panel控件的高度也不变,永远在底部,一般当做状态栏。然后一个panel设为剩余区域对齐。这个panel的高宽就会自动随窗体变化为剩下区域的位置的高宽。然后放三个panel控件到最后这个panel上。一个左对齐。这个panel控件的宽度不变。永远在窗体的左边,高度就会自动变化。然后一个panel设为右对齐,这个panel控件的宽度也不变,永远在右边。然后一个panel设为剩余区域对齐。这样。我们就把窗口分割为上下左右和中间五个区域。你根据你的窗体设计情况自由裁剪。经组合一般可达到你的要求。
希望有分啊!当然也希望能帮到你!
展开全部
设置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值.
看看是否对你有帮助
在窗体的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值.
看看是否对你有帮助
追问
我的意思是把窗体界面(已有许多控件)已经设置好了,但是我需要用最大或最小按钮(一般为右上角的那三个图标)或者拖动来改变,比如浏览器那样的,可以说的具体点吗?谢谢!
追答
如果整个页面的控件随窗口按比例放大缩小的话,我感觉客户体验肯定不好
浏览器的最大化,网页也没有随之改变,除非你改变电脑的分辨率
参考资料: http://hi.baidu.com/gaops/blog/item/5138cd3332fe0256ac4b5f44.html
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
恐怕只有写语句来实现了
追问
你知道怎么写?
追答
我说个想法吧,窗体是你画的,里面有哪些控件你也知道,把他们的位置(left,top height,width)在窗体创建后写到一个配置文件里面,然后在FORM的ONRESIZE事件里面取新的FORM的WIDTH,HEIGHT,去除配置文件里面的数字得到一个长与宽的分别的变动比率,用这两个比率分别来计算新的座标与长宽。
不过我觉得如果窗体中的控件少还好办,如果有几十个控件的话那是相当累的一件事。
刚测试了一下,是可行的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询