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:
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;