Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Gráficos (https://www.clubdelphi.com/foros/forumdisplay.php?f=8)
-   -   Sobreescribir método Paint y saber coordenadas a refrescar (https://www.clubdelphi.com/foros/showthread.php?t=53894)

Lord Delfos 04-03-2008 14:26:52

Sobreescribir método Paint y saber coordenadas a refrescar
 
Bueno, no sé si es el foro correcto, pero...

¿Cómo están? Tengo una dudilla bastante espinosa.

Estoy haciendo un componente. Como tiene que dibujar cosas propias en su superficie estoy sobreescribiendo el método Paint. El problema es que no sé qué parte de todo el control (que puede ser muy extenso) se tendría que dibujar.

Es decir, si mi control mide 500 píxeles de largo y tengo que refrescar los primeros 10, no tengo manera de saberlo y tengo que dibujar todo el control en sus 500 píxeles.

Estoy casi seguro que alguna vez había leído algo al respecto, pero no puedo encontrar nada.

Si alguien sabe, agradecería alguna punta.

Saludos.

seoane 04-03-2008 14:42:03

Prueba con la propiedad "ClipRect" del Canvas, durante el evento OnPaint contiene las coordenadas del rectángulo que hay que redibujar

cHackAll 04-03-2008 14:49:36

No estoy muy seguro de que clase deberías heredar (la mas adecuada), sin ambargo necesitas analizar el mensaje WM_PAINT, una vez capturado dicho mensaje necesitas utilizar la API BeginPaint, la cual te va a retornar una estructura que contiene una variable llamada rcPaint la cual especifíca las coordenadas a ser pintadas.

Cita:

Empezado por rcPaint
Specifies a RECT structure that specifies the upper left and lower right corners of the rectangle in which the painting is requested.

La forma correcta de utilizar dicho mensaje es mediante la API InvalidateRect

Saludos

Lord Delfos 05-03-2008 13:48:28

Gracias, muchachos.

Una vez más estoy encaminado...

Un abrazo.


La franja horaria es GMT +2. Ahora son las 10:34:53.

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