FTP | CCD | Buscar | Trucos | Trabajo | Foros |
#1
|
|||
|
|||
Evitar parpadeos
Hola a todos los delphiadores del foro.
Bueno, pues la cosa es que estoy haciendo un componente que trabaja con imagenes en movimiento (Sprites). Para evitar los parpadeos que suelen ocurrir cuando pintamos repetidamente sobre un canvas, he puesto un bitmap oculto, entonces pinto sobre este bitmap (TBitmap) y una vez pintado vuelco la imagen sobre el canvas. La cosa es que no funciona, la imagen sigue parpadeando. ¿alguien save porque? Muchas gracias a todos. |
#2
|
||||
|
||||
Si el componente que estás creando desciende de la clase TwinControl, lee esta ayuda de Delphi:
Cita:
__________________
Guía de Estilo de los Foros Cita:
|
#3
|
|||
|
|||
Muchas gracias por responder marcoszorrilla.
Ya he encontrado (de rebote) la solución a mi problema, y la erdad es que era muy fácil, aunque no tengo ni idea de porque funciona. Si alguien puede explicarmelo se lo agradezco. Mi componente desciende de TGraphicControl y tenia un bitmap en el cual yo pitaba para despues bolcarlo en el canvas del componente. Mirando los componentes de Delphi, he visto que los que descienden de TGraphicControl tienen el estilo csOpaque y yo se lo puse al mio y... Ningun parpadeo!!!! Increible!!!! Si alguien save que hace el estilo csOpaque le agradeceria que me lo explique. Muchas gracias. |
#4
|
|||
|
|||
Tengo entendido que si la propiedad ControlStyle por defecto provoca el evento WM_PAINT para repintar primero el fondo del canvas antes de dibujar el sprite, lo que generaría el parpadeo.
Lo mas eficiente sería utilizar un area de buffer cuando se manejan sprites, pero eso depende de la conveniencia de cada uno.
__________________
Suerte .: Gydba :. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
|