Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   cuando usar la opcion DoubleBuffered que veo en muchos componentes? (https://www.clubdelphi.com/foros/showthread.php?t=65433)

cocute 14-12-2009 23:57:32

cuando usar la opcion DoubleBuffered que veo en muchos componentes?
 
cuando usar la opcion la opcion DoubleBuffered que veo en muchos componentes?
ya me imagino que activandolo mejorará el rendimiento en algún caso.
pero ¿en que casos y en que componentes deberia activarlo?

por ejemplo en un componente pagecontrol con webbrowsers en cada pestaña seria recomendable activarlo?
¿o deberia poner una opcion en mi programa para que el usuario lo active o no?
ya que entiendo tambien que debe de depender de la potencia del pc para que funcione mejor con esta opcion ¿no?

gracias

xEsk 15-12-2009 13:23:38

Hola, yo sólo lo activo cuando algún componente parpadea (flickering) al mostrar su contenido al hacer scroll o cambiar de tamaño.

En mi caso, siempre que he activado el DoubleBuffered ha sido en los componentes TListView cuando los pintorreo manualmente, vamos que los personalizo usando los métodos OnCustomDrawItem, etc...

Pero debes tener en cuenta, que activarle la propiedad DoubleBuffered va a relantizar el proceso de dibujado del formulario, vamos que cuantos más componentes con esta propiedad activados más lento irá al pintar (cosa que sólo notaras cuando cambies el tamaño del formulario).

Saludos.

jhonny 15-12-2009 15:36:26

Tambien puede ser util en caso de que estemos utilizando la propiedad GlassFrame en un aplicativo para Windows vista...

Para ver un ejemplo de esto he colgado las siguientes dos imagenes...

* En vista utilizando GlassFrame sin DoubleBuffered.



* En vista utilizando GlassFrame luego de activar el DoubleBuffered a dicho botón.

coso 15-12-2009 17:49:42

Hola,
el doublebuffered sirve para hacer doble buffer al momento de pintar, esto es, primero dibujar en memoria y luego volcar desde memoria a pantalla el contenido del sprite. Si no se usa double buffer, se esta pintando a pantalla directamente. Así pues, tansolo colocando DoubleBuffered en tu form al inicio, ya lo estaras aplicando a todos los componentes de ese mismo form. Si buscas dentro del foro por la función bitblt y por doublebuffered verás un ejemplo, por cHackAll si no recuerdo mal, de este mismo tema, donde se hacia el double buffer de manera manual. Un saludo.

PD: personalmente, igual que los compañeros, uso doublebuffered tansolo cuando hago OnPaints manuales, o componentes que necesiten bastante tiempo en dibujarse.


La franja horaria es GMT +2. Ahora son las 23:35:24.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi