百思不得其解???(20分)

  • 主题发起人 主题发起人 superbenben2001
  • 开始时间 开始时间
S

superbenben2001

Unregistered / Unconfirmed
GUEST, unregistred user!
在一个窗体上放三个控件如下:
ScrollBox1 Timer1 Label1
属性如下:
Label1.captino:='动态字幕';
Timer1.Enabel:=True;
Timer1.interval:=200;
它原来代码如下:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
label1.Top:=label1.Top-8;
if label1.top<-label1.Width-30 then
label1.Top:=scrollbox1.Height;
end;
可以实现动态字幕!!1
但是我的理解是这样的;
label1.top:=Label1.top-8;
if lable1.top<scrollbox.top+lable1.height then
label1.Top:=scrollbox1.Height;
反而不可以实现动态字幕??
对于它原来的:
if label1.top<-label1.Width-30 then 不能理解,
哪位能说说究竟为什么会这样??


 
<-label1.Width-30 是不是 <= label1.Width-30
如果不是就不能够理解了
 
没有问题
 
label1.Top:=label1.Top-8;
if label1.top<-label1.Width-30 then
//-label1.Width-30 只是设置在什么时候label1才从scorllbox的底部出现,这个数据可以随便设置,不信你设置为0也行,设置为0那就是说当label一担超出scrollbox范围就从底部出现,
label1.Top:=scrollbox1.Height;
//首先你要知道label1.Top与scrollbox1.Top的含义不同,label1.top是指距scrollbox顶端的高度,scrollbox1.Top指的是距form顶端的高度。
scrollbox.top+lable1.height //这是你指定的数据其实也没有问题,只是活动的范围不同了,不信将scrollbox1.heigh改大一些看看,就能看到效果了,
 
接受答案了.
 
后退
顶部