怎么使文字动起来??(100分)

  • 主题发起人 主题发起人 yonggang402
  • 开始时间 开始时间
Y

yonggang402

Unregistered / Unconfirmed
GUEST, unregistred user!
用timer空间,以下编码实现:
if label1.left+label1.width>0 then
label1.left:=label1.left-10
else label1.left:=form1.width;
end;
以上编码可以实现字幕循环流动,但是我的界面是全屏的,字幕动的时候很不稳定,闪动
太厉害,反而更难看了,尤其是在当字幕进入最左边的时候,整个label都变白了,特难看
真不知道该怎么办了,。所以想问一下各位有什么高招!急!!
 
你可以把文字写在label上,然后改变left或top的值就好了
 
但我不知道怎么改呀???[:(]
 
Form1.DoubleBuffered := true;
 
加上一个Application.processmessage
 
各位大虾,能通俗易懂点吗?最好能加些注释!不胜感激!
 
label的Transparent设为true
Timer的时间不要设得太短,如果要速度快,移动的步长设长点
用Timer组件的话,只要时间不是太短
Application.processmessage
没有必要
 
raize有这样的控件,你看看源代码是怎样作的.
 
Form1.DoubleBuffered := true;//打开双缓冲!
写在CREATE事件中;
 
用Lable的确会有闪屏现象。
解决方案 canvs.textout();
 
用TextOut就没有一点问题的
 
哈哈 个位好!
我好久没上DFW了真的很想你们呀
所以我就又来了 8-)
我叫:Eroswar
DFW的昵称叫:qbtxx
如上的问题嘛!小问题了
在窗体中放上一个Image1控件调整好长度和大小在加入如下源代码
请看我给你们如下的源代码 8-)
有颜色的字母在向上翻滚
我 想 给 点 奖 励 分 吧 ! 呵呵 8-)
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls;

type
TForm1 = class(TForm)
Image1: TImage;
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
x,tt:integer;

implementation

{$R *.dfm}

procedure TForm1.Timer1Timer(Sender: TObject);
begin
x:=x-1;
tt:=tt-1;
if x<-176 then
x:=image1.height+10;
tt:=x+10;
image1.Canvas.font.size:=16;
image1.Canvas.Font.Style:=[fsItalic];
image1.Canvas.Font.Color:=$00c080ff;
image1.Canvas.TextOut(10,x,'你');
image1.Canvas.Font.Color:=$00ff0080;
image1.Canvas.TextOut(10,x+20,'好');
image1.Canvas.Font.Color:=$00408080;
image1.Canvas.TextOut(10,x+40,'呀');
image1.Canvas.Font.Color:=$008080ff;
image1.Canvas.TextOut(10,x+60,'可');
image1.Canvas.Font.Color:=$00408000;
image1.Canvas.TextOut(10,x+80,'爱');
image1.Canvas.Font.Color:=$00400080;
image1.Canvas.TextOut(10,x+100,'的');
image1.Canvas.Font.Color:=$004080ff;
image1.Canvas.TextOut(10,x+120,'妹');
image1.Canvas.Font.Color:=$00c08000;
image1.Canvas.TextOut(10,x+140,'妹');
image1.Canvas.Font.Color:=ClPurple;
image1.Canvas.TextOut(10,x+160,'!');
end;
//image2.Canvas.font.size:=16;
//image2.Canvas.Font.Style:=[fsBold];
//image2.Canvas.Font.Color:=$00c080ff;
//image2.Canvas.TextOut(10,k,'哥');
//image2.Canvas.Font.Color:=$00ff0080;
//image2.Canvas.TextOut(10,k+20,'哥');
//image2.Canvas.Font.Color:=$00408080;
//image2.Canvas.TextOut(10,k+40,'您');
//image2.Canvas.Font.Color:=$008080ff;
//image2.Canvas.TextOut(10,k+60,'好');
//image2.Canvas.Font.Color:=$00408000;
//image2.Canvas.TextOut(10,k+80,'!');
//image2.Canvas.Font.Color:=$00400080;
//image2.Canvas.TextOut(10,k+100,'这');
//image2.Canvas.Font.Color:=$004080ff;
//image2.Canvas.TextOut(10,k+120,'位');
//image2.Canvas.Font.Color:=$00c08000;
//image2.Canvas.TextOut(10,k+140,'妹');
//image2.Canvas.Font.Color:=ClPurple;
//image2.Canvas.TextOut(10,k+160,'妹');
//image2.Canvas.Font.Color:=Clblue;
//image2.Canvas.TextOut(10,k+180,'漂');
//image2.Canvas.Font.Color:=ClSKyBlue;
//image2.Canvas.TextOut(10,k+200,'亮');
//image2.Canvas.Font.Color:=ClOlive;
//image2.Canvas.TextOut(10,k+220,'吗');
//image2.Canvas.Font.Color:=ClRed;
//image2.Canvas.TextOut(10,k+240,'?');

procedure TForm1.FormCreate(Sender: TObject);
begin
timer1.enabled:=true;
timer1.Interval:=10;
x:=image1.height+10;
tt:=x+10;
end;
end.


 
推荐用TextOut
 
yonggang402兄,还不收贴?
 
不好意思,好久没上网了,忙着考试,现接受答案!
 
后退
顶部