Home » Tipps & Tricks » Grafik » Zeichnen » Grafik flickerfrei verschieben

Grafik flickerfrei verschieben

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;