| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Cerúleo Master


Registrado: 04 Ago 2003Mensajes: 332Ubicación: Santander, España
|
Publicado: Mie 19 Ene, 2005 8:12 am Asunto: OnPaint() y TSpeedButtons... |
|
|
Hola a todos.
Tengo una ventana con un evento OnPaint() que lanzo cuando cambia el contenido de algún TEdit, etc. Pero el evento se activa también cuando paso el ratón por encima de los TSpeedButton que tengo en la ventana. En este caso no debería hacer nada, y como sí redibuja, se ve un parpadeo del gráfico bastante molesto. ¿Se os ocurre alguna solución?
Un saludo. _________________ Nunca digas "Es imposible" sin intentarlo antes. |
|
| Volver arriba |
|
 |
Cerúleo Master


Registrado: 04 Ago 2003Mensajes: 332Ubicación: Santander, España
|
Publicado: Dom 23 Ene, 2005 11:37 am Asunto: |
|
|
Hola.
Necesito una ayuda, por favor. He estado comprobando otras ventanas que tengo, y no me ocurre esto. ¿Tengo que mandar dibujar a mano, tengo que decirle a la aplicación cuándo debe redibujar? Se trata de un efecto bastante feo.
Un saludo. _________________ Nunca digas "Es imposible" sin intentarlo antes. |
|
| Volver arriba |
|
 |
Enrique Master


Registrado: 13 Ago 2002Mensajes: 261Ubicación: La Vila Joiosa (Alacant)
|
Publicado: Lun 24 Ene, 2005 1:20 am Asunto: |
|
|
Hola, Cerúleo.
Supongo que el problema está en que el evento onPaint() se dispara en más ocasiones de las que tú pretendes controlar, se me ocurre que elimines el contenido que actualmente tiene Form1Paint() y lo traslades a otra función que tenga los mismos parámetros pero creada por tí (pones su prototipo en la parte private: o public: del .h). Su definición sería algo así como | Código: | void __fastcall TForm1::PintaVentana(TObject *Sender) {
//Aquí pones el código que tenías en Form1Paint
} | y en los eventos en que llamabas a Foim1Paint(...) sustituyas esa llamada por PintaVentana(...). Así controlarás tú cuándo se dispara el repintado. _________________ Ojos ... no son ojos porque los ves, son ojos porque te miran |
|
| Volver arriba |
|
 |
Cerúleo Master


Registrado: 04 Ago 2003Mensajes: 332Ubicación: Santander, España
|
Publicado: Dom 13 Feb, 2005 12:32 pm Asunto: |
|
|
Gracias Enrique.
Efectivamente, lanzaba demasiadas veces la función de pintar. La pasé del evento OnPaint() del Form y sólo la puse en el evento OnPaint() del TPaintBox, y ahora va muy bien.
Gracias y un saludo. _________________ Nunca digas "Es imposible" sin intentarlo antes. |
|
| Volver arriba |
|
 |
|