Ayuda Marchoso

fran
30 de Octubre del 2005
Hola

Estoy haciendo un programa en el que cuando le doy a un boton se me abre un formulario con un gif animado para que el usuario espere mientras el programa realiza una serie de calculos.

El problema que tengo es que el gif funciona 1 segundo, el tiempo que el programa comienza a hacer los cálculos, y luego se queda fijo, no se mueve. Cuando el programa termina de hacer los calculos y me los muestra en pantalla, empieza otra vez a moverse el gif.

Es decir, que mientras me hace los calculos, el gif no se mueve.

Se os ocurre alguna solucion?, es lo último que me queda para terminar el programa echadme una mano por favor.

Gracias

Pablo Mereles
30 de Octubre del 2005
Marchoso (OCX) 2.00

Control OCX para mostrar GIFs animados.

Atencion: Los gráficos en formato GIF usan compresion LZW. El algoritmo LZW es propiedad de Unisys, si quieres usar gráficos en formato GIF debes ponerte en contacto con esta empresa (y pagarles lo que te pidan, claro).

Más atencion: El formato gráfico GIF no es muy apropiado para mostrar animaciones (te parece mentira, ya lo sé, pero es cierto). En Windows puedes usar AVIs que son mejores !

Version 2.0

La version 2.0 soporta GIFs animados con fondos transparentes.

No se soportan las extensiones de Netscape, usa en su lugar las propiedades GifLoop y Transparent.

Se mantiene la compatibilidad con la version 1.00, a excepcion del famoso bug, que se ha corregido (o eso creo :-)

Instalacion:

Copia el fichero Marchoso.OCX al directorio SYSTEM (o equivalente) y registralo (usa regsvr32.exe o regocx.exe, ...)

Este control depende de las librerías MFC40.DLL y MSVCRT.DLL. Estas librerías suelen estar ya instaladas en todos los Windows.

Propiedades:

La propiedad por defecto del control es FileName. El cambiar el valor de esta propiedad comienza la ejecucion del GIF.

* AutoSize, cuando es TRUE el control se adapta al tamaño del GIF automáticamente, en caso contrario el GIF se escala para acomodarse al tamaño del control.
* FileName, es la propiedad por defecto, debe contener el nombre del fichero gif, se usa tambien para resetear la animacion ya que cada asignacion de este valor provoca que la animacion comience desde el principio.
* GifLoop, si es FALSE acaba la animacion tras interpretar la ultima frame. No sirve para parar/arrancar la animacion.Normalmente debe estar a TRUE.
* MainPalette, esta propiedad se mantiene por compatibilidad con la version 1.00. En la actualidad no se usa ya que internamente se manejan los GIFs en formato true-color.
* Transparent, propiedad que permite cambiar el fondo del GIF, cuando es FALSE se usa el fondo definido en el GIF. Para ver bien los GIFs con fondo transparente hay que poner esta propiedad a TRUE.

Tips:

Para comenzar una animacion asignale a la propiedad FileName en nombre del fichero que contiene el GIF: Marchoso1.filename = "c:tempsamba.gif"

Para mover el control cuando se está ejecutando un GIF con fondo transparente y que se capture el fondo de nuevo, es necesario escribir varias instrucciones:

Marchoso1.Visible = False
Marchoso1.Left = 500
Marchoso1.Top = 500
Marchoso1 = Marchoso1 'rearranca la animacion
Marchoso1.Visible = True

En cualquier caso, este control no es apropiado para mover sprites por la pantalla, así que lo anterior no habrá que hacerlo a menudo ;-)

Que lo disfrutes ;-)