FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour GIF en proceso automático
Posts: 479
Joined: Fri Feb 16, 2007 10:29 AM
GIF en proceso automático
Posted: Sat Mar 22, 2014 09:13 AM
Compañeros, buenos días:

En un proceso automatico (de actualizaciones) pretendo colocar un GIF mientras se conecta al servidor y comprueba si hay actualizaciones. Hago lo siguiente:
Code (fw): Select all Collapse
 define dialog oDlg resource 'actualiza1' 
  oDlg:bStart := {|| oAnimate:=TGif():New( odlg, ".\images\metro\loader.gif", 190,oDlg:nLeft()+320)}
 activate dialog oDlg center nowait
 ...... el resto del código......

Con la clausula NOWAIT el GIF se muestra pero es estático, SIN animación.
Si inserto la clausula ON INIT se ejecuta la actualización pero SIN mostrar el GIF
Si inserto un BUTTON en el Dialog lo hace "todo ok" (animación del GIF + actualización), pero "pierde" la automatización del proceso. Es el usuario quien debe presionar el BUTTON para iniciar el proceso.

¿Qué soluciones hay?

Mil gracias. Un saludo.
LORENZO
Desde Cádiz, España.
Posts: 479
Joined: Fri Feb 16, 2007 10:29 AM
Re: GIF en proceso automático
Posted: Mon Mar 24, 2014 11:44 AM

¿?

Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: GIF en proceso automático
Posted: Mon Mar 24, 2014 03:20 PM
Loren wrote:Compañeros, buenos días:

En un proceso automatico (de actualizaciones) pretendo colocar un GIF mientras se conecta al servidor y comprueba si hay actualizaciones. Hago lo siguiente:
Code (fw): Select all Collapse
 define dialog oDlg resource 'actualiza1' 
  oDlg:bStart := {|| oAnimate:=TGif():New( odlg, ".\images\metro\loader.gif", 190,oDlg:nLeft()+320)}
 activate dialog oDlg center nowait
 ...... el resto del código......

Con la clausula NOWAIT el GIF se muestra pero es estático, SIN animación.
Si inserto la clausula ON INIT se ejecuta la actualización pero SIN mostrar el GIF
Si inserto un BUTTON en el Dialog lo hace "todo ok" (animación del GIF + actualización), pero "pierde" la automatización del proceso. Es el usuario quien debe presionar el BUTTON para iniciar el proceso.

¿Qué soluciones hay?

Mil gracias. Un saludo.
LORENZO
Desde Cádiz, España.


Lorenzo, que raro...
Intenta así:

Code (fw): Select all Collapse
define dialog oDlg resource 'actualiza1'  TRANSPARENT
  oDlg:bStart := {|| oAnimate:=TGif():New( odlg, ".\images\metro\loader.gif", 190,oDlg:nLeft()+320) ,;
                             TuFuncDeAct() }
 activate dialog oDlg center 
 
   oAnimate:Stop()
Return nil

Saludos.
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 1286
Joined: Mon Feb 25, 2008 02:54 PM
Re: GIF en proceso automático
Posted: Mon Mar 24, 2014 04:33 PM

function Animate(nTip,bAction)

local oDlg, oAnimate

define dialog oDlg resource 'PLAYANIMATE'
oAnimate := TAnimate():Redefine( 160, oDlg )
oDlg:bStart := {|| Eval( bAction, odlg ), oDlg:End(), SysRefresh() }
oDlg:lhelpicon := .f.
activate dialog oDlg centered on init(if(nTip=1,oAnimate:copyfiles(),;
if(nTip=2,oAnimate:delfile(),;
if(nTip=3,oAnimate:copyfile(),;
if(nTip=4,oAnimate:emptycan(),;
if(nTip=5,oAnimate:destfile(),;
if(nTip=6,oAnimate:fileverif(),)))))))
return

ubiratanmga@gmail.com

FWH24.04
BCC7.3
HARBOUR3.2
xMate
Pelles´C
TDolphin
Posts: 479
Joined: Fri Feb 16, 2007 10:29 AM
Re: GIF en proceso automático
Posted: Thu Mar 27, 2014 01:42 PM

FranciscoA:

Sigue igual, tu sugerencia no funcionó. Es muy raro, y no encuentro una explicación.
He probado incluso con otros GIF's y se muestran sin animación.

Seguiré buscando una solución

Gracias.
Saludos desde Cádiz, España

Posts: 2365
Joined: Wed Nov 02, 2005 11:46 PM
Re: GIF en proceso automático
Posted: Fri Mar 28, 2014 01:43 AM
Saludos

creo que te falta un sysrefresh() en el proceso de descarga

te dejo un ejemplo, copialo en la carpeta de samples de fivewin o coloca tu propio gif

Code (fw): Select all Collapse
#include "fivewin.ch"
#include "gif.ch"

function main()
    local oWnd
    local oMenu
    
    menu oMenu
        menuitem "Prueba" action prueba()
    endmenu
    
    
    define window oWnd menu oMenu
    
    activate window oWnd


return nil

function prueba()

    local oDlg
    local oGif
    local n := 0
    local oSay
    local nEnd := 100000
    
    define dialog oDlg title "prueba" size 400,300
    
    @ 100, 10 SAY oSay PROMPT "TEXTO" OF oDlg pixel
    
    activate dialog oDlg on init crearGif( oDlg ) nowait valid ( n := nEnd, .t. ) 
    
    do while n < nEnd
        n++
        oSay:SetText( str(n) ) 
        if n%100==0
            sysrefresh()
        end
    end
    ? "listo"
    oDlg:End()

return nil

function crearGif( oDlg )

    @ 1, 1 GIF oGif FILE "..\gifs\matrix.gif" OF oDlg SIZE 300, 150 ADJUST

return nil
Posts: 479
Joined: Fri Feb 16, 2007 10:29 AM
Re: GIF en proceso automático
Posted: Fri Mar 28, 2014 05:27 PM

Daniel,

efectivamente!! era un sysrefresh().

Mil gracias
LORENZO.

Continue the discussion