Problema con control personalizado

04/11/2008 - 00:06 por Francesc | Informe spam
Hola,
Tengo un control personalizado que cuando se activa muestra una animación
con un texto de espera, la animación son varios iconos que van cambiando
para dar sensación de movimiento. La idea es utilizarlo como si fuera un
cursor de espera, pero personalizado. Entonces cuando muestro el control,
ejecuto un procedimiento que actualiza los datos de una base de datos, pero
el control no se dibuja hasta que ha terminado la actualización. ¿Cómo puedo
hacer que el control se dibuje en primer plano mientras en segundo plano se
ejecuta el procedimiento de actualización? He probado a lanzar el control en
un thread separado, pero obtengo el error de control.invoke. ¿Alguna idea?

Saludos
 

Leer las respuestas

#1 Pedro Maicas
04/11/2008 - 10:03 | Informe spam
On Tue, 4 Nov 2008 00:06:07 +0100, "Francesc"
wrote:

Tengo un control personalizado que cuando se activa muestra una animación
con un texto de espera, la animación son varios iconos que van cambiando
para dar sensación de movimiento. La idea es utilizarlo como si fuera un
cursor de espera, pero personalizado. Entonces cuando muestro el control,
ejecuto un procedimiento que actualiza los datos de una base de datos, pero
el control no se dibuja hasta que ha terminado la actualización. ¿Cómo puedo
hacer que el control se dibuje en primer plano mientras en segundo plano se
ejecuta el procedimiento de actualización? He probado a lanzar el control en
un thread separado, pero obtengo el error de control.invoke. ¿Alguna idea?



Con toda seguridad para hacer eso sería más adecuado mostrar
una animacion construida con un avi, el propio sistema operativo
se encarga de 'animar' el avi en un thread independiente.

Pero puesto a usar ese control, podrías actualizar la base de datos
en otro thread, y refrescar el control en el principal. Tambien
podrías hacerlo todo en el mismo thread si periódicamente permites
al sistema operativo procesar los mensajes pendientes, lo que sería
en VB la funcion DoEvents o en el API un bucle de mensajes, si
el lenguaje que usas lo permite.



Saludos :-) - Pedro -

http://www.maicas.net/

Preguntas similares