Comunidad Gambas-es
Como visualizar un Gif Animado en PictureBox - Versión para impresión

+- Comunidad Gambas-es (https://gambas-es.org)
+-- Foro: Gambas (https://gambas-es.org/forum-3.html)
+--- Foro: Aplicaciones/Fragmentos de Código (https://gambas-es.org/forum-8.html)
+--- Tema: Como visualizar un Gif Animado en PictureBox (/thread-1093.html)



Como visualizar un Gif Animado en PictureBox - alessandri - 12-11-2022

Hola Amiguos.

Estoy intentando visualizar un GIF Animado en un PictureBox,
y la imagen se ve frizada.
¿Alguien sabe como hacer que se vea en movimiento?

Gracias.

Hola, me permito contestarme Smile .

Para ver los gif animados se debe usar el MovieBox así:
Código:
  Dim Direccion As String = "/home/usuario/Documentos/ProyectosGambas3/proyecto/myproyecto/imagenes_botones/fireworks-2.gif"

  MovieBox1.Path = Direccion
  MovieBox1.Playing = True



RE: Como visualizar un Gif Animado en MovieBox - vuott - 13-11-2022

(12-11-2022, 23:13)alessandri escribió: [code]

Al usar la Propiedad "MovieBox1.Path", obtengo esta advertencia:
« gb.gui.base: MovieBox.Path is deprecated. Do not use it anymore. »

Creo que ahora tenemos que usar esta instrucción en su lugar:
[code]

También parece que con este recurso "Animation" ya no es necesaria la instrucción:
[code]


RE: Como visualizar un Gif Animado en PictureBox - Shell - 16-11-2022

Y no olvidemos que tanto PictureBox como MovieBox tienen la propiedad Mode con sus constantes.
 
Cita:MovieBox.Normal    The picture is displayed at it’s original size. No attempt is made to fit the picture to the size of the MovieBox.
MovieBox.Fill    The picture is stretched to fit both the width and height of the MovieBox. Proportionality of the picture is not maintained.
MovieBox.Cover    The picture proportionality is maintained. The entire MovieBox height and width is filled.
MovieBox.Contain    The picture proportionality is maintained. The entire picture is displayed and stretched for best fit.
MovieBox.Repeat    The picture is displayed at it’s original size and repeated. The entire MovieBox height and width is filled.

Ejemplo:

Código:
Public Sub btnVisualizar_Click()
 
  With MovieBox1
    .Animation = Animation.Load(Application.Path &/ "Jetpac.gif")
    .Mode = MovieBox.Contain
    .Playing = True
  End With
   
End

[Imagen: hB2lc7Q.png]

Jetpac is Loading estaría animado.
Con MovieBox.Contain, la imagen se ajusta automáticamente a su contenedor.

Saludos


RE: Como visualizar un Gif Animado en PictureBox - Shordi - 16-11-2022

Sin venir a cuento, esto me ha recordado el pequeño control que hice hace un porrón de tiempo para cubrir esperas y que llamé waiter. He tenido que desempolvarlo para recordar cómo diablos conseguí el efecto...


RE: Como visualizar un Gif Animado en PictureBox - Shell - 16-11-2022

(16-11-2022, 20:40)Shordi escribió: Sin venir a cuento, esto me ha recordado el pequeño control que hice hace un porrón de tiempo para cubrir esperas y que llamé waiter. He tenido que desempolvarlo para recordar cómo diablos conseguí el efecto...

¿ Creaste un control equivalente al spinner ?.


RE: Como visualizar un Gif Animado en PictureBox - Shordi - 17-11-2022

No sé si es igual que el spinner porque nunca he usado el spinner. Lo  creé en una situación en la que lanzas un proceso externo vía shell y tu programa debe esperar hasta que termine y tu programa parece haberse colgado mientras. No recuerdo la situación concreta ni si entonces existía el spinner.

En mi respuesta anterior tienes el ejemplo.

Saludos.


RE: Como visualizar un Gif Animado en PictureBox - Shell - 18-11-2022

(17-11-2022, 11:35)Shordi escribió: En mi respuesta anterior tienes el ejemplo.

Si lo he bajado y lo iba a probar pero me encuentro esto.

[Imagen: 8Bn5ObE.png]

Esto deberíamos crear un post nuevo y tratar este tipo de problemas.
Hace un tiempo creé uno.

A ver, el problema principal que nos encontramos es:

¿ Cómo saber que control es el obsoleto ?.
Se me ocurre abrir el directorio del proyecto desde la consola o el explorador. Abrir archivos fuentes o del formulario
y ver que hay ahí. Si muestra el tipo de componente que falta, pero estoy más perdido que el barco del arroz. Huh
Supongo que la clase no es.

Este es el archivo fTest.form
 
Cita:# Gambas Form File 3.0

{ Form Form
  MoveScaled(0,0,36,41)
  { Button1 Button
    MoveScaled(9,23,16,7)
    Text = ("Tarea que tarda")
  }
  { waiter1 waiter
    MoveScaled(11,8,13,13)
  }
}

No son componentes que parezcan obsoletos .
O puede que dentro del archivo de clase. Pero es que no veo nada que parezca que pueda dar error en el código.

¿ Un método en la clase que quede obsoleto ?.

Este proyecto usa gb.gui, lo he cambiado por gb.gui.qt, pero no lo arregla (no lo esperaba, hay algo más).
Si marco mostrar componentes obsoletos en propiedades del proyecto en el área de componentes, no muestra nada tampoco.
No se hace uso de un componente obsoleto.

Ya lo he encontrado. La forma de verlo rápidamente es usar la opción que vemos como "Delete controls from missing component".
( No es nada nuevo ).

Es la mejor forma de ver este problema:

Pero es absurdo que se cree una clase y se queje de esta. Exclamation

[Imagen: mqg4hPo.png]

Ostras.

¿ Qué opinas ?.

De hecho, le doy a ejecutar la aplicación y funciona sin problemas. Confused
 

Shordi:

Cuando dices:
 
Cita:Si cierras el form antes de que termine la tarea del shell, la tarea continuará así como el ciclo de eventos pero el objeto esperador ya no existirá cuando el shell devuelva el control al ciclo de eventos.
    If Error Then Break

Lo que hice fue ir al gestor de procesos del sistema y ver que se ejecutaba.
Desde que la aplicación comienza a ejecutarse, aparece gbx3 (El interprete) hasta que cierro la aplicación.
En este caso, si cierro esta aplicación, ( el ciclo de eventos ). El gbx3 sigue activo, hasta que finaliza todo su proceso.

P.d es que no encontré el post donde se habla de la aplicación. Probablemente se encuentre en el foro antiguo.

Saludos


RE: Como visualizar un Gif Animado en PictureBox - Shordi - 18-11-2022

Cita:No son componentes que parezcan obsoletos .
O puede que dentro del archivo de clase. Pero es que no veo nada que parezca que pueda dar error en el código.

¿ Un método en la clase que quede obsoleto ?.
No se trata de algo obsoleto, es el propio control waiter el que no encuentra. Ten en cuenta que es un control y al intentar cargar en el ide por primera vez no puede porque no está aún compilado. Si ignoras el error, compilas la clase waiter y luego, si es necesario, cierras y abres el proyecto otra vez, no debería aparecer el error.
Cita:P.d es que no encontré el post donde se habla de la aplicación. Probablemente se encuentre en el foro antiguo.
 
Supongo, ya digo que es muy antiguo.

Saludos.


RE: Como visualizar un Gif Animado en PictureBox - Shell - 19-11-2022

(18-11-2022, 21:56)Shordi escribió: No se trata de algo obsoleto, es el propio control waiter el que no encuentra. Ten en cuenta que es un control y al intentar cargar en el ide por primera vez no puede porque no está aún compilado. Si ignoras el error, compilas la clase waiter y luego, si es necesario, cierras y abres el proyecto otra vez, no debería aparecer el error.

Entonces es algo más bien que no encuentra, ok (obviamente "missing"). De hecho ya no lo hace, después de su ejecución.
Pero como vi este problema (similar) en otra aplicación me quedé con la duda.

Por ejemplo me he encontrado el caso de un componente que fue sustituido por otro en el editor de Gambas que eran una mejora del mismo y el error
al cargar el ejemplo se muestra igual que este ( aunque sea por otro motivo ).

Fue con el control TextEdit que luego se sustituyó por TextEditor. Estaba en una práctica con TabStrip y TabPanel. Por aquella fecha se usaba Gambas 3.8

Saludos