DruckenMister WongFacebook

Grafik flickerfrei verschieben

System Win9x, WinNT, Win2000, WinXP, Vista, Win7
Ab Delphi-Version Delphi 1
Letzte Änderung 28.09.2010

Wenn man, z.B. eine Grafik mit einem Timer verschiebt, treten störende Flickereffekte auf. Kann ich das irgendwie abstellen?

Ja das kannst Du. Du musst die Eigenschaft DoubleBuffered des Parents auf True setzen. Dies ist meist das Formular.

Dazu ein kleines Beispiel:

var
  Form1: TForm1;
  vx: Integer = 1;

implementation

{$R *.DFM}

procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  Form1.DoubleBuffered := True;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
  Image1.Left := Image1.Left + vx;
  if Image1.Left > ClientWidth - Image1.Width - 1 then
    vx := vx * -1;
  if Image1.Left < 1 then
    vx := vx * -1;
end;