在用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;

解决方案 »

  1.   

    procedure TJD.Timer1Timer(Sender: TObject);
    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;
    改为这样后你再试一下
      

  2.   

    procedure TJD.Timer1Timer(Sender: TObject);
    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;
      

  3.   

    设置窗体的doublebufferd
    比如procedure TForm1.FormCreate(Sender: TObject);
    begin
      self.DoubleBuffered:=true;
    end;