窗体上有TreeView和ScrollBox。当点击TreeView上的节点动态生成控件Panel(根据记录的多少,创建的个数)。我现在不知道怎么布局,就是当生成的Panel到达ScrollBox的右边界的时候自动换行,接着生成下一个控件,依次……当然要控制好控件Panel的位置。
动态生成控件已经做好,主要是布局问题,找了好久也没找到相关的资料。while MyPanel[count].Left > ScrollBox1.ClientWidth do
  begin
    MyPanel[count].Left := MyPanel[count].Left - 1120;
    MyPanel[count].Top := MyPanel[count].Top + 140;
  end;
这是我的布局,但是效果达不到。还有如果上面布局成功了,当我改变窗体的大小,控件Panel重新布局(避免窗口变大后,右边界出现多余的空白)。小生刚起步,求前辈指点江山,,感激。谢!

解决方案 »

  1.   

    当我改变窗体的大小,控件Panel重新布局需要在resize事件里重新执行布局函数
      

  2.   

    在窗体resize事件重新布局,就是说要重新计算再指定top,left
      

  3.   

    帮你写了一个小demo,已经上传了,你看看这样行不行!
    http://download.csdn.net/detail/jayqiang/3882409
      

  4.   

       先定义 一个 主Panel,然后再主Panel上面创建控件 指定位置即可。
      

  5.   

    这个不是多大的问题。
    如果是自己手工绘制类似PANEL的样式,需要控制好paint事件,
    如果是直接创建的PANEL控件,就需要控制好PAINT事件和REISIZE事件;
    其实问题本身不复杂,就是涉及的细节问题太多。
    类似的控件我在VB中做过,不过那时候是在画板上直接画出来的效果,通过paint事件不断刷新的。
      

  6.   

    jayqiang,灰常感谢你,我按照你的方法我,做成功。谢谢!