按比例放大?TEdit,TLabel应该没必要吧,象TListBox,TGroupBox,TMemo等还是可以的,设置Align属性,不过,你最好恰当使用panel,groupbox等容器控件。

解决方案 »

  1.   

    在TForm.OnResize中处理一下,不就可以了吗?TFrom.Components[I]获取窗体上的空间然后根据TForm.Components[0].classname获取他的类型然后根据类型或名称判断分别进行处理不就可以了吗?
      

  2.   

    To:renzhm(戴尔飞) 你说用Align属性,恐怕是说设定为Client吧,我的意思不是这个,就是说,当设计窗体时,设计成800*600的,各种控件都涉及好了之后,运行,这时候最大化窗体,一般来说,那些控件是不会随着变长,变宽的。我的意思就是想让这些空间也按比例放大!To:zzg40280614(),你说得我不是太明白,可不可以在讲解的详细一点呢?!谢谢!
      

  3.   

    捕捉窗体变化的消息,然后进行设置。
    //TForm1.create里写
    Application.OnMaximize := MaximizeForm;//最大化TForm1.MaximizeForm(Sender : Tobject)
    begin
       //这里对窗体上的控件进行设置
    end;
      

  4.   

    zzg40280614() 
    你说的是不是可以呢?我没有试,但我好象觉得TForm.OnResize只是在用鼠标拖放窗体的时候才触发的。点最大化按钮好象没有触发这个事件的。不知道我说的对不对,讨论。谢谢
      

  5.   

    To: cooling(cooling) 点最大化按钮好象也可以触发这个事件。
      

  6.   

    点最大化按钮好象也可以触发OnResize这个事件。
    因为最大化也是窗体大小改变!
      

  7.   

    用TControl.Anchors属性就好了type TAnchors = set of TAnchorKind;
    type TAnchorKind = (akTop, akLeft, akRight, akBottom);
      

  8.   

    To fsb2001(涵秋) :非常感谢!我试了,这样子可以的!不过,还是稍微有疑点问题,就是我设定edit的(akTop, akLeft, akRight)的话,当窗体放大时,edit的右边框就紧贴着窗体的边框了,我想能不能让他们保持一定的距离,比如说,保持原先没有放大时的距离?
      

  9.   

    你的要求只能在OnResize事件中动态改变Left,Top,Height,Width!不过没人会像你怎么做!一般像你这种情况都是用对话框窗体,即窗体不允许缩放,最大化!或者你应该看看其它人的程序窗体是如何排版的,你的想法实际效果并不好!要知道分辨率在640*480-1680*1260(还可能更高),假设800*600,或1024*768中的界面效果让人满意,其它分辨率中必然很难看!
      

  10.   

    在ONResize事件里
    for i=0 to i<Componentcount - 1 do
    begin
        if components[i].classnameis('TPanel')
        begin
             TPanel(componets[i]).width    end;
    end;
      

  11.   

    其实根本不要这么麻烦,只要多用几个Panel就可以很轻松的解决这个问题,根本不要自己写代码这么麻烦,只要把Listview之类的控件放在panel上,alignAlign属性都设定为Client就可以了
      

  12.   

    有一个scale属性,可以让他们同比增大.