动态生成控件的进一步讨论(50分)

牟鹏

Unregistered / Unconfirmed
GUEST, unregistred user!
看过以前所讨论的动态生成控件的方法。
不过现在有个问题:如果要生成的控件
很多,有些会超出FORM的可视范围,
将如何处理呢?在以前的讨论中提供的例
程似乎都没有考虑这个问题。
DELPHI的处理方式是在FORM上放置
SCROLLBOX,再将控件的PARENT
设为SCROLLBOX,但我对具体如何实现
仍不明白,因为我不知道如果控件超出
可视范围,怎样在程序中设置属性呢?
比如TOP之类的。
 
用scrollbox也有问题:
控件top或left为负数时scrollbar不会出现, 也就是说控件生成时超出左边界或
上边界时, scrollbox不会提供滚动条. 所以动态生成时应考虑这个问题
生成步骤:
1. mycontrol.create(form1);
2. mycontrol.parent:=scrollbox1;
3. mycontrol.left:=x;
// x 是相对于scrollbox中的位置(0表示在scrollbox左边界,负数表示在左边界之外)
mycontrol.top:=y;
// y 也是相对于scrollbox中的位置(0表示在scrollbox的上边界上,负数表示在上边界之外)
4. ....
不过我喜欢用boundsrect赋值, 一次设定整个大小和位置
mycontrol.BoundsRect:=Rect(left, top, right, bottom);
 
接受答案了.
 

Similar threads

顶部