Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 2 de 3
Ir a la página Anterior  1, 2, 3  Siguiente
 
¿Cómo Mantener Una Animación En "background"?
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Re: ¿Cómo Mantener Una Animación En "background"? 
 
No es muy buena idea porque ahora sale el 100% tras pulsar el botón y el usuario va a creer que ya ha acabado de convertir.

Mira el vídeo.

PD. Subo de nuevo porque al hacer el vídeo he detectado un bug (faltaban unas comillas).

Conversor de im??genes.tar.gz
Descripción:  
Descargar
Nombre del archivo: Conversor de im??genes.tar.gz
Tamaño: 50.52 KB
Descargado: 27 veces
Conversor de im??genes.tar.gz
Descripción:  
Descargar
Nombre del archivo: Conversor de im??genes.tar.gz
Tamaño: 50.52 KB
Descargado: 27 veces
Conversor de im??genes.tar.gz
Descripción:  
Descargar
Nombre del archivo: Conversor de im??genes.tar.gz
Tamaño: 50.52 KB
Descargado: 27 veces

 



 
guadafan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Cómo Mantener Una Animación En "background"? 
 
Guadafan:

Tienes mal puesto el contador:

  For Each archivo In lista_de_archivos
    Print archivo
    contador += 1
    FMain.progreso(contador)
    Print "comando: " & "convert -density 300 -compress lzw " & "'" & archivo & "'" & " " & "'" & ruta & "/" & File.BaseName(archivo) & "-%03d.tiff" & "'"
    If File.Ext(archivo) = "pdf" Or File.Ext(archivo) = "PDF" Then
      Shell "convert -density 300 -compress lzw " & "'" & archivo & "'" & " " & "'" & ruta & "/" & File.BaseName(archivo) & "-%03d.tiff" & "'" To salida
    Else
      Shell "convert -density 300 -compress lzw " & "'" & archivo & "'" & " " & "'" & ruta & "/" & File.BaseName(archivo) & ".tiff" & "'" To salida
    Endif
    Print salida

  Next



Deberias poner el contador despues de haber ejecutado el "convert":

  For Each archivo In lista_de_archivos
    Print archivo
    
    Print "comando: " & "convert -density 300 -compress lzw " & "'" & archivo & "'" & " " & "'" & ruta & "/" & File.BaseName(archivo) & "-%03d.tiff" & "'"
    If File.Ext(archivo) = "pdf" Or File.Ext(archivo) = "PDF" Then
      Shell "convert -density 300 -compress lzw " & "'" & archivo & "'" & " " & "'" & ruta & "/" & File.BaseName(archivo) & "-%03d.tiff" & "'" To salida
    Else
      Shell "convert -density 300 -compress lzw " & "'" & archivo & "'" & " " & "'" & ruta & "/" & File.BaseName(archivo) & ".tiff" & "'" To salida
    Endif
    Print salida
contador += 1
    FMain.progreso(contador)
  Next


De esa manera no marcara el 100% cuando inicia el trabajo de convert.
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Cómo Mantener Una Animación En "background"? 
 
guadafan escribió: [Ver mensaje]
...por eso era lo de poner al menos algo  que dé la impresión de que la aplicación no se ha quedado pillada.

Y que pasa si usas algo como:

  Inc Application.Busy
  
 ' Aca pones tu proceso o Función

  Dec Application.Busy
 


Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Cómo Mantener Una Animación En "background"? 
 
Eso mismo fué lo que yo le pregunté, Tincho... pero sin respuesta.   
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Cómo Mantener Una Animación En "background"? 
 
Si cambio lo del contador, volvemos a la situación del principio, barra de progreso que se queda sin avanzar al principio (porque no tiene feedback) y aplicación que parece que está parada sin hacer nada. Por concretar el caso, cojo un PDF y lo intento convertir a TIFF.

Lo del Inc Application.Busy ya lo había comentado Shordi, pero el problema es que la ventana de conversión es pequeña y en cuanto sale el puntero del ratón fuera de la aplicación ya no surte efecto, encontrándonos de nuevo con el problema original.
 



 
guadafan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Cómo Mantener Una Animación En "background"? 
 
Es imposible mantener una barra de progreso coordinada sin un feedback que la alimente.

Una salida es que la barra de progreso avance a trompicones según los archivos pendientes y sus tamaños. Eso es fácil, calculas el tamaño total de los archivos y le vas restando el de cada archivo procesado. Mientras la barra está parada, pones un pequeño literal de "Procesando " & nombre de archivo en marcha y dejas la animación dando vueltas.

O, más simple, olvídate de la barra de progreso y pon un timer que haga avanzar la animación. Al menos no se queda parado.
 




===================
No podemos regresar
 
última edición por shordi el Miercoles, 05 Abril 2017, 17:59; editado 1 vez 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Cómo Mantener Una Animación En "background"? 
 
ok, comprendo lo del inc Application.busy.
Mira te propongo lo sigiente:
Tu agregas una cantidad de archivos, y luego los procesas. Bueno si tu archivo es mono pagina, un JPEG un TIFF etc sumas 1 en una variable integral, si tu archivo es multipagina, como por ejemplo un PDF sumas en la lista la cantidad de paginas, así al final tendrás un numero real de archivos que pasan por la "batidora". Y en el proceso vas descontando uno cada vez que haces una pasada y listo.

Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Cómo Mantener Una Animación En "background"? 
 
shordi escribió: [Ver mensaje]
Es imposible mantener una barra de progreso coordinada sin un feedback que la alimente.

Una salida es que la barra de progreso avance a trompicones según los archivos pendientes y sus tamaños. Eso es fácil, calculas el tamaño total de los archivos y le vas restando el de cada archivo procesado. Mientras la barra está parada, pones un pequeño literal de "Procesando " & nombre de archivo en marcha y dejas la animación dando vueltas.

O, más simple, olvídate de la barra de progreso y pon un timer que haga avanzar la animación. Al menos no se queda parado.


Claro, es el problema original, la barra no se mueve y quería una animación dando vueltas en el formulario "en paralelo", de ahí pasamos a lo de los observadores que recomendaba jsbsan.

Lo que comentas de los tamaño no es posible porque no sabemos el tamaño final de los archivos y si pongo un timer y llega al final sin haber realmente terminado de convertir...
 



 
guadafan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Cómo Mantener Una Animación En "background"? 
 
tincho escribió: [Ver mensaje]
ok, comprendo lo del inc Application.busy.
Mira te propongo lo sigiente:
Tu agregas una cantidad de archivos, y luego los procesas. Bueno si tu archivo es mono pagina, un JPEG un TIFF etc sumas 1 en una variable integral, si tu archivo es multipagina, como por ejemplo un PDF sumas en la lista la cantidad de paginas, así al final tendrás un numero real de archivos que pasan por la "batidora". Y en el proceso vas descontando uno cada vez que haces una pasada y listo.

Saludos.


Lo del número de páginas del PDF lo podría conseguir, pero ... ¡Que no tengo feedback del conversor! No tengo ni pajolera idea de cuándo "convert" ha convertido una página o no.
 



 
guadafan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Cómo Mantener Una Animación En "background"? 
 
guadafan escribió: [Ver mensaje]
...Lo del número de páginas del PDF lo podría conseguir, pero ... ¡Que no tengo feedback del conversor! No tengo ni pajolera idea de cuándo "convert" ha convertido una página o no.

   Mira eso es relativamente sencillo.

Dim stxListadearchivos as new string[]  ' Lista de todos los archivos que vas a procesar
Dim strArchivo as string
Dim prsBatch As Process
Dim strExt As String ' Extension de salida de convert

For each strArchivo in stxListadearchivos

  prsBatch = Shell "convert " & strArchivo &  File.Dir(strArchivo) &/ File.Name(strArchivo) & "." & strExt

    While prsBatch.State = prsBatch.Running
      Wait 0.01
    Wend

Next


Para el caso de los pdf tendras que hacer otro convert ..... pero con un Select por tipo de archivo te vale.

Saludos.
 



 
última edición por tincho el Miercoles, 05 Abril 2017, 18:43; editado 2 veces 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Un Detalle Con El Insert Into Gambas Value... jousseph Bases de Datos 5 Domingo, 04 Noviembre 2012, 20:58 Ver último mensaje
Shell
No hay nuevos mensajes Ejemplo De Formulario Con Animación De &q... jsbsan Aplicaciones/Fragmentos de Código 1 Viernes, 15 Marzo 2013, 10:36 Ver último mensaje
Shell
No hay nuevos mensajes Cómo Mostrar Mensajes "Notify-send&q... Fenriz07 General 9 Viernes, 23 Septiembre 2016, 09:03 Ver último mensaje
vuott
No hay nuevos mensajes Ejecutar Archivos Audio MP3 Con La Clase &... vuott Aplicaciones/Fragmentos de Código 5 Lunes, 02 Diciembre 2019, 13:28 Ver último mensaje
tincho
 

Publicar nuevo tema  Responder al tema  Página 2 de 3
Ir a la página Anterior  1, 2, 3  Siguiente

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron