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

 我来答
中国富海集团bo
2011-04-04 · 超过37用户采纳过TA的回答
知道答主
回答量:76
采纳率:100%
帮助的人:101万
展开全部
dephi7中设定窗体里的组件随窗体变化是用组件的Align属性(对齐方式)Align属性有以下几个选项:alNone(不对齐);alBottom(底部对齐)alClient(剩余区域对齐。具体看帮助。我自己翻译了这个名字);alCustom(自定义对齐。);alLeft(左对齐);alRight(右对齐);alTop(顶部对齐)。
当有一个或多个组件需要随窗体变化宽高时。一般用到Align属性。常用方式是选用几个panel控件。一个顶部对齐。这个panel控件的高度不变。永远在窗体的上边,宽度就会自动变化。然后一个panel设为底部对齐,这个panel控件的高度也不变,永远在底部,一般当做状态栏。然后一个panel设为剩余区域对齐。这个panel的高宽就会自动随窗体变化为剩下区域的位置的高宽。然后放三个panel控件到最后这个panel上。一个左对齐。这个panel控件的宽度不变。永远在窗体的左边,高度就会自动变化。然后一个panel设为右对齐,这个panel控件的宽度也不变,永远在右边。然后一个panel设为剩余区域对齐。这样。我们就把窗口分割为上下左右和中间五个区域。你根据你的窗体设计情况自由裁剪。经组合一般可达到你的要求。
希望有分啊!当然也希望能帮到你!
百度网友762632f6d
推荐于2018-05-10 · TA获得超过379个赞
知道小有建树答主
回答量:217
采纳率:0%
帮助的人:379万
展开全部
设置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值.

看看是否对你有帮助
追问
我的意思是把窗体界面(已有许多控件)已经设置好了,但是我需要用最大或最小按钮(一般为右上角的那三个图标)或者拖动来改变,比如浏览器那样的,可以说的具体点吗?谢谢!
追答
如果整个页面的控件随窗口按比例放大缩小的话,我感觉客户体验肯定不好
浏览器的最大化,网页也没有随之改变,除非你改变电脑的分辨率

参考资料: http://hi.baidu.com/gaops/blog/item/5138cd3332fe0256ac4b5f44.html

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Cybor2010
2011-04-14 · 超过21用户采纳过TA的回答
知道答主
回答量:93
采纳率:0%
帮助的人:47.2万
展开全部
恐怕只有写语句来实现了
追问
你知道怎么写?
追答
我说个想法吧,窗体是你画的,里面有哪些控件你也知道,把他们的位置(left,top height,width)在窗体创建后写到一个配置文件里面,然后在FORM的ONRESIZE事件里面取新的FORM的WIDTH,HEIGHT,去除配置文件里面的数字得到一个长与宽的分别的变动比率,用这两个比率分别来计算新的座标与长宽。
不过我觉得如果窗体中的控件少还好办,如果有几十个控件的话那是相当累的一件事。

刚测试了一下,是可行的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式