Sunday, 9 November 2008

Jugando con TCanvas: Conectando Objetos en Delphi (Parte IV).

  • Evitando el Parpadeo (Flickering).

Al estar pintando continuamente el Canvas, todos los objetos parpadean en la pantalla. Para evitar esto, podemos utilizar el doble buffer. En la creación del formulario activamos la opción DobleBuffered a True:



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



otra cosa que podemos hacer, es volcar el resultado del dibujo en un TBitmap, y luego volcar el resultado del pintado en la imagen, de la siguiente manera:


var
Bmp : TBitmap;
begin
Bmp := TBitmap.Create;
try
Bmp.Width := image2.Width;
Bmp.Height := image2.Height;
DrawArrow(bmp.canvas, P1, P2, 5, true, clblack);
image2.Canvas.draw(0, 0, Bmp);
finally
bmp.free;
end;
end;
De esta manera, nuestra aplicación evitará el parpadeo:



Podreis encontrar la aplicación aquí.

0 comments:

Post a Comment