Ver Mensaje Individual
  #3  
Antiguo 26-03-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Reputación: 24
seoane Va por buen camino
Alguien llamo a un doctor???

La técnica del doble buffer no es otra cosa que dibujar primero todo en un bitmap oculto y luego dibujar el bitmap en el formulario. Normalmente para dibujar el formulario primero se borra todo y luego se van dibujando cada uno de los controles, produciéndose el parpadeo, usando el buffer, vamos dibujando cada uno de los controles en un bitmap y luego dibujamos el bitmap sobre el formulario, evitando así el parpadeo.

La propiedad DoubleBuffered lo que hace es interceptar el mensaje WM_PAINT, y obliga al formulario a dibujarse en un bitmap en vez de hacerlo directamente en la pantalla. No se hasta que punto te interesa hacer esto a ti, en el mejor de los casos tendrías que interceptar y manejar tu mismo el mensaje WM_PAINT, con todo el trabajo extra que eso supone.

Aunque la técnica del doble buffer nos puede resultar útil en otros casos, por ejemplo, cuando estamos dibujando sobre un TImage o un TPaintbox alguna animación. El procedimiento habitual es dibujar un "frame" de la animación, borrar, dibujar el siguiente y volver a repetir la misma operación. Al borrar se produce el parpadeo del que hablábamos. El proceso con buffer sin embargo seria el siguiente: Crear un bitmap del mismo tamaño que el TImage o TPaintBox, dibujar el frame sobre el bitmap, dibujar el bitmap sobre el TImage o TPaintbox y repetir la operación. Como ves de esta manera se dibuja todo a la vez y sin necesidad de borrar primero lo anterior, lo que evita el parpadeo.

Vaya rollo que he soltado
Responder Con Cita