Programación General > Delphi

 Que No Parpadee

(1/1)

Perrero:
Tengo una aplicacion en la cual se mueve una imagen, con la ayuda de un Timer, pero el problema es que cuando se va moviendo la imagen parpadea , como puedo hacer para que deje de parpadear?

Enko:
Para que no parpadee deberias usar lo que seria "double buffering" pero en una Form.

Deberias tener un TBitmap con el tamaño de toda la Form.

--- Código: Text --- var  Buffer: TBitmap;begin  Buffer := TBitMap.Create;  Buffer.Width := Form1.Width;  Buffer.Height := Form1.Height;end;  Luego,  por cada ciclo del timer:

--- Código: Text --- //borrar el bufferBuffer.Canvas.FillRect(Rect(0,0, Buffer.Width, Buffer.Height));//dibujar la pelota en el canvas del bufferBuffer.Canvas.Draw(X,Y, Pelota);//volcar el buffer sobre la la Form comenzando en (0,0)//se puede comenzar en otra posicionForm1.Canvas.Draw(0,0, Buffer);  
Si lo que etabas haciendo es mover un TPicture cambiando (X,Y), y tenes varias Botones, Edits  y otras cosas en la forma,  podrias probar con hacer el buffer del tamaño minimo necesario para que la imagen que se mueve quepe en el y el resto sigue siendo igual. (no te olvides de liberar el buffer: Buffer.Free).

Navegación

[0] Índice de Mensajes

Ir a la versión completa