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

Preguntas similare

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/
Respuesta Responder a este mensaje
#2 Francesc
04/11/2008 - 12:24 | Informe spam
Muchas gracias por tu respuesta, utilizo vb net con compact framework 2.0,
he probado a poner la función DoEvents que me comentas y me funciona de
maravilla, justo lo que necesitaba. Llevo varios días dándole vueltas al
tema y me lo has solucionado en un periquete, gracias de nuevo

Saludos

Francesc


"Pedro Maicas" escribió en el mensaje de
noticias:
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/
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida