关于scrollbox隐藏滚动条后,控制之的问题

时间:2022-10-08 05:27:35
我的FORM上是这样的,有一个scrollbox,一个button,两个label.
点击button后,动态在scrollbox上生成一组控件
由于美观的原因,我隐藏了scrollbox的滚动条,用两个label分别上下控制ScrollBox的滚动
现在问题出来了
用ScrollBox1.ScrollBy(0,n) 的确可以控制上下滚动
但是可以无限制的滚下去,ScrollBox显示为空白了,还是可以滚,
请问如何判断ScrollBox里已经显示完了label变灰
因为里面的ScrollBox里面的东西是动态生成的,而且不一定有多少个,不能直接用数字表达,也不能用最后一个控件的名字来判断,我该怎么办,比较急

9 个解决方案

#1


哎呀,还是我给你想的呢
我先去收分,再来回答问题

#2


嗯,收到,就是少了点:)

你可以设定一个变量,比如i

 假设一行3个,每行高度是100像素,现在有14个动态创建的控件

i:=0; // 表示到顶
i:=1; // 表示在第二行
...
i:=14 div 3; // 表示到底了, 具体怎么得到这个值,你应该会的,我就不详细写了


if i>0 then 允许向上;
if i<(14 div 3) then 允许向下;


#3


又是布丁啊,我跟你发了消息你没回,我就发了这个贴子,我这个就是确定不了你说的这个i,因为我不知道总共有多少动态创建的控件,可能是100个,可能是50个,我不知道该怎么判断,大家都来看看啊

#4


有点没看明白
生成一组控件,为什么要放到ScrollBox里?
既然放到ScrollBox里,为什么要‘为了美观而隐藏scrollbox的滚动条’?

#5


试试循环ScrollBox里的每个控件,计算出AControl.Top + AControl.Height,则可以得到最大可以滚动的象素,再用一个变量记录当前已经滚动多少象素,即可控制label的enable

#6


楼上的,这样有点复杂,我的控件不是一排只有一个的

#7


一下子说不清
你到这个群来: QQ群号: 14006707

#8


再一次顶起来

#9


使用一个stringlist记录生成的所有控件,然后根据数量控制。

#1


哎呀,还是我给你想的呢
我先去收分,再来回答问题

#2


嗯,收到,就是少了点:)

你可以设定一个变量,比如i

 假设一行3个,每行高度是100像素,现在有14个动态创建的控件

i:=0; // 表示到顶
i:=1; // 表示在第二行
...
i:=14 div 3; // 表示到底了, 具体怎么得到这个值,你应该会的,我就不详细写了


if i>0 then 允许向上;
if i<(14 div 3) then 允许向下;


#3


又是布丁啊,我跟你发了消息你没回,我就发了这个贴子,我这个就是确定不了你说的这个i,因为我不知道总共有多少动态创建的控件,可能是100个,可能是50个,我不知道该怎么判断,大家都来看看啊

#4


有点没看明白
生成一组控件,为什么要放到ScrollBox里?
既然放到ScrollBox里,为什么要‘为了美观而隐藏scrollbox的滚动条’?

#5


试试循环ScrollBox里的每个控件,计算出AControl.Top + AControl.Height,则可以得到最大可以滚动的象素,再用一个变量记录当前已经滚动多少象素,即可控制label的enable

#6


楼上的,这样有点复杂,我的控件不是一排只有一个的

#7


一下子说不清
你到这个群来: QQ群号: 14006707

#8


再一次顶起来

#9


使用一个stringlist记录生成的所有控件,然后根据数量控制。