求教有关移动字幕的问题(50分)

  • 主题发起人 主题发起人 黑色火焰
  • 开始时间 开始时间

黑色火焰

Unregistered / Unconfirmed
GUEST, unregistred user!
求教有关移动字幕的问题
timer.ontimer:
form1.label1.top:=form1.label1.top-25;
if (-15>=(label1.top-form1.panel1.top)) then
form1.label1.top:=form1.panel1.top+394;
form1.label2.top:=form1.label2.top+25;
label1是向上移动的,可以在panel1的范围内循环移动
如何让laber2也在panel1的范围内循环移动
是不是:
form1.label2.top:=form1.label2.top+25;
if (0>=(label2.top+form1.panel1.top)) then
form1.label2.top:=form1.panel1.top-394
 
这种移动有些闪烁
查查以前的旧贴,有其他的方法
 
可以,闪烁才有动感嘛,
我喜欢那种跳动的感觉
 
用staictext就不会有闪烁了,可惜不能透明了。[:(]
 
问题是label2只向下移动一次,而不会像label1一样在panel1中循环移动
请问label2是错在哪了
 
请各位大虲帮我
 
问题是label2只向下移动一次,而不会像label1一样在panel1中循环移动
请问label2是错在哪了
 
问题是label2只向下移动一次,而不会像label1一样在panel1中循环移动
请问label2是错在哪了
 
因为你第二次还有以后你的if条件永远成立,
那么他一直都看不见了
也就是说以后你的label2.top=form1.panel1.top-394+25是不变的
 
procedure TForm1.Timer1Timer(Sender: TObject);
begin
form1.label1.top:=form1.label1.top-25;
if (-15>=(label1.top-form1.panel1.top)) then
form1.label1.top:=form1.panel1.top+394;
form1.label2.top:=form1.label2.top+25;
if ((label2.top+form1.panel1.top)>=394) then
form1.label2.top:=form1.panel1.top+394;
end;

end.
这是全部代码,label2可以从上向下移动到指定的范围内,、但不能循环移动
 
//if ((label2.top+form1.panel1.top)>=394) then
// form1.label2.top:=form1.panel1.top+394;
改成
if ((label2.top+form1.panel1.top)>=394) then
form1.label2.top:=form1.panel1.top+15;//或者直接等于15,自己试试
另外, 如果不要闪烁,建议用TStaticText代替TLabel
 
用RXLIB里面有一个,很是好用,用很lou.
 
多人接受答案了。
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
后退
顶部