在用label和Timer滚动字母的时候,Interval间隔短的时候,label会出现闪动.
我见别人说要打开双缓冲区,这样就不会闪.
我没做过缓冲区方面的东西,所以特来请教大家,请问如何实现?
procedure TJD.Timer1Timer(Sender: TObject);
begin
label1.Left:=label1.left-1;
if label1.left<-840 then
label1.left:=+label1.width;
Timer1.Interval := 100;
end;
我见别人说要打开双缓冲区,这样就不会闪.
我没做过缓冲区方面的东西,所以特来请教大家,请问如何实现?
procedure TJD.Timer1Timer(Sender: TObject);
begin
label1.Left:=label1.left-1;
if label1.left<-840 then
label1.left:=+label1.width;
Timer1.Interval := 100;
end;
begin
Timer1.enabled := false ;
label1.Left:=label1.left-1;
if label1.left<-840 then
label1.left:=+label1.width;
Timer1.Interval := 100;
Refresh;
Timer1.enabled := false ;
end;
改为这样后你再试一下
begin
Timer1.enabled := false ;
label1.Left:=label1.left-1;
if label1.left<-840 then
label1.left:=+label1.width;
Timer1.Interval := 100;
Refresh;
Timer1.enabled := true;
end;
比如procedure TForm1.FormCreate(Sender: TObject);
begin
self.DoubleBuffered:=true;
end;