CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

窗体放大后,各控件如何相应放大???

楼主smile_cc(笑笑)2002-10-02 16:50:41 在 Delphi / VCL组件开发及应用 提问

这个问题一直困扰着我,当运行时把窗体放大,窗体其丑无比!!怎么处理?? 问题点数:20、回复次数:5Top

1 楼zsy_good(只要坚定不移的走下去,那一定会成功)回复于 2002-10-02 17:01:31 得分 3

控件不是有属性吗?  
  你吧他的4个位置都固定死,窗体放大的时候,他也会放大Top

2 楼qdxby(足球小子)回复于 2002-10-02 17:23:48 得分 1

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

3 楼gdwyh(神州大虾)回复于 2002-10-02 19:06:50 得分 10

建一窗体,在窗体上加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下调试通过。Top

4 楼martinlii(梦幻使者)回复于 2002-10-02 19:08:04 得分 1

这个问题我也不懂,要是有那为大虾知道如何解决,请告诉我谢谢了。  
   
  martinlh@sina.comTop

5 楼Purpleendurer(编程—>任是无情也动人^_^)回复于 2002-10-02 22:33:46 得分 5

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

相关问题

  • 如何实现当窗体最大化时,窗体上的控件也相应的变大.
  • 窗体与窗体上的控件随分辨率的改变而相应改变大小,如何实现?
  • *****有什么办法让窗体放大缩小的同时,其中的控件也一起放大缩小呀?!*****
  • 如何实现在TTREEVIEW控件中点击,显示出相应窗体?谢谢
  • 谁有窗体的控件!!!
  • 创建窗体及控件
  • MDI窗体控件问题.
  • 请问如何在改变窗体时,可以时各种控件的位置等倍放大
  • 有没有现成的类可以实现FormView内控件的跟随窗体自动排列/放大缩小?
  • C#主窗体有控件,控件会挡住子窗体!

关键词

  • 控件
  • 代码
  • 窗体
  • 放大
  • ct
  • 大小
  • cw
  • onresize
  • 如下
  • 事件

得分解答快速导航

  • 帖主:smile_cc
  • zsy_good
  • qdxby
  • gdwyh
  • martinlii
  • Purpleendurer

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo