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
Ir a la versión completa