为什么不能设置让控件随着窗体变大而按比例变化好像 vb,vc等都不可以,其实像微软等应该很容易做到的目前我发现 matlab 在做 gui时,有次选项,不用再编什么语句来实现

解决方案 »

  1.   

    可以让某个控件的宽度占用form的扩大宽度,高度也一样要按比例,就很复杂了:控件的间隔是不是也需要按比例化吗?如果确定一种扩张模式,可以在form的onresize事件里自行重新设置
      

  2.   

    delphi 本身好像支持这个功能,就是按百分比设置,但是觉得很复杂
    我一直也想实现这样功能的应用软件,如果能实现的话,可以让程序工作在任意分辨率下面。记得在学校时我老师用VB6 开发软件,他就实现了这样的功能,控件在窗口上放得乱七八糟的,但是在运行时就跟据系统的设置各归各位,只可惜出学校就没有联系过老师,也没有联系方式,当时看不懂他的程序代码。
      

  3.   

    delphi 里面有一系列的参数做相关的设置,但是目前还没能研究透这些相关方法的具体应用!
      

  4.   

    使用panel对你程序的区域进行分割,使用align对你的panel进行定位,再使用anchors对panel拉伸的状态进行描述
    你会得到一个可以拉伸的界面。布局是需要灵活掌握的一门学问,如果你做过B/S开发,那么会很容易理解
      

  5.   

    一个小思路
    貌似在form的onresize事件中写代码
    记录窗体纵横比 然后改变 窗体上 其他空间的纵横比 
    不过貌似 相当麻烦哈 
      

  6.   

    设置控件的anchors属性,轻松搞定。
    锚点固定窗体那个边,窗体变化后,控件自动便大小,这很容易的啊
      

  7.   

    有一个开源控件Autopanel
    你可以下载一下!也可以自己写一个!
      

  8.   

    哈哈,我刚刚也问过这个问题,用zhoutler同志的办法解决了,谢谢!学习了
      

  9.   

    可以通过设置该控件离Form的上 下距离来实现啊。。procedure TForm1.FormResize(Sender: TObject);
    begin
      button1.Left := 0;
      button1.Top := 0 ;
      button1.Height := ClientRect.Bottom-Clientrect.Top;
      button1.Width :=  ClientRect.Right-ClientRect.Left;
    end;