如合何使快速滚动的文字毫无闪烁,快来拿分!!!(30分)

  • 主题发起人 青山侠客
  • 开始时间

青山侠客

Unregistered / Unconfirmed
GUEST, unregistred user!
我想响应ontimer事件来实现滚动字幕,但无论用Tlabel控件,改变其top或left属性,还是用
canvas.textout方法来实现,都会发生抖动、闪烁的现象,请问该如何解决!!!!
 
用个aafont控件了,或者你分析它是这么做的。
 
方法1:设Form.DoubleBuffered:=True; 试试有没有效果。

如方法1不管用,则--
方法2:用2个Form,在Form1上放ScrollBox。把你的Label放在form2上。设Form2为无边框。
然后:
procedure TForm1.FormShow(Sender: TObject);
begin
form2.Parent:=ScrollBox1;
Form2.Left:=0;
Form2.Top:=0;
Form2.show;
end;
然后用时钟或其他控制Form2移动,保准没有任何闪烁。 [:D]
 
用image作为容器,用image.canvas.textout试试
 
用一个无边的form,加一个MEMO控件,
然后就改变left ,top二个参数就可以了,
top减小,这个我有原码,
是一个用文本签循环显的
 
用Canvas怎么可能还闪烁呢?
var
Form1: TForm1;
x,tt,l,h:integer;
pic:TRect;
map:TBitmap;
implementation

{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
x:=image1.Height+10;
tt:=x+80;
form1.repaint;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
x:=x-1;
tt:=tt-1;
if x<-160 then
x:=image1.height+10;
tt:=x+170;
image1.Canvas.font.size:=24;
image1.Canvas.Font.color:=clBlue;
image1.Canvas.TextOut(20,x,'大富翁论坛');
end;
 
多人接受答案了。
 
顶部