TGif

TGif

Postby oliveiros junior » Thu Nov 09, 2017 11:14 am

Prezados,

Fiz um rotina para mostrar o "meter" enquanto o sistema executa ações. O meter é um gif que está nos samples do FWH. Coloquei a ação no codblock que a classe TGif fornece. A rotina mostra o Gif porém de forma estática. Pergunto se existe alguma forma de manter o gif animado enquanto se executa as ações?

Ex.: bAcao = { || oOBjeto := oTeste:ReQuery() }

na rotina

DEFINE DIALOG oDialog NOWAIT CENTERED ;
ON INIT TGif( oDialog, "meter.gif",0,0,,,,, bAcao)

Att.,

Oliveiros Junior
oliveiros junior
 
Posts: 122
Joined: Tue Mar 20, 2007 3:13 pm

Re: TGif

Postby cnavarro » Thu Nov 09, 2017 12:00 pm

Prueba esto a ver si te ayuda

Code: Select all  Expand view

#include "fivewin.ch"
#include "gif.ch"

Static oWnd

Function main()

   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 oSay
   
   DEFINE DIALOG oDlg TITLE "Prueba" SIZE 160, 160 OF oWnd PIXEL
      @ 100, 10 SAY oSay PROMPT "TEXTO" OF oDlg PIXEL
   ACTIVATE DIALOG oDlg ON INIT CrearGif( oDlg ) NOWAIT

Return nil

//----------------------------------------------------------------------------//

Function CrearGif( oDlg )
   
   local oGif
   @ 1, 1 GIF oGif FILE "..\gifs\matrix.gif" OF oDlg ADJUST //SIZE 100, 100

Return nil

//----------------------------------------------------------------------------//


 
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6498
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: TGif

Postby oliveiros junior » Thu Nov 09, 2017 12:39 pm

Olá Cristobal,

Obrigado pela resposta.

Sim vai funcionar, porém se eu colocar

WITH OBJECT oDialog
:bStart := { || Eval( oGif:bLClicked, SysRefresh() ) } // Para execução do codblock que coloquei na criação do objeto Gif
END

Ou

WITH OBJECT oDialog
:bStart := { || Eval( bAcao, SysRefresh() ) } // Para execução do codblock que sem colocar na criação do objeto Gif
END

Mostra o gif mas de forma estática.

Att.,

Oliveiros Junior
oliveiros junior
 
Posts: 122
Joined: Tue Mar 20, 2007 3:13 pm

Re: TGif

Postby karinha » Thu Nov 09, 2017 1:09 pm

Tente assim:

Code: Select all  Expand view

#include "fivewin.ch"
#include "gif.ch"

Static oWnd

Function main()

   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 oSay
   
   DEFINE DIALOG oDlg TITLE "Prueba" SIZE 160, 160 OF oWnd PIXEL

      @ 100, 10 SAY oSay PROMPT "TEXTO" OF oDlg PIXEL

   ACTIVATE DIALOG oDlg ON INIT CrearGif( oDlg ) NOWAIT

Return nil

//----------------------------------------------------------------------------//

Function CrearGif( oDlg )
   
   local oGif

   @ 10, 1 GIF oGif FILE "..\gifs\006.gif" OF oDlg SIZE 100, 100 ;
       ACTION( oGif:lAdjust := .F., oGif:Refresh(), oDlg:Refresh() )

Return nil

//----------------------------------------------------------------------------//
 
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7151
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: TGif

Postby cnavarro » Thu Nov 09, 2017 1:19 pm

oliveiros junior wrote:Olá Cristobal,

Obrigado pela resposta.

Sim vai funcionar, porém se eu colocar

WITH OBJECT oDialog
:bStart := { || Eval( oGif:bLClicked, SysRefresh() ) } // Para execução do codblock que coloquei na criação do objeto Gif
END

Ou

WITH OBJECT oDialog
:bStart := { || Eval( bAcao, SysRefresh() ) } // Para execução do codblock que sem colocar na criação do objeto Gif
END

Mostra o gif mas de forma estática.

Att.,

Oliveiros Junior


Disculpa, entonces no he entendido lo que necesitas
Google Translate no me traduce sus palabras, Joao?
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6498
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: TGif

Postby karinha » Thu Nov 09, 2017 1:36 pm

Oliveiros Junior, use este tradutor:

http://tradukka.com/translate/en?hl=pt

Para se expressar em Espanhol ou Inglês.

E mostre imagens do que você deseja realmente fazer e com código fonte de exemplo completo, evite postar somente uma parte do código fonte.

Poste imagens aqui, cole e copie a tag:

https://imgur.com/

Ou aqui:

https://uploaddeimagens.com.br

Oliveiros, você iniciou um tópico aqui no forum Fivewin Brasil, e não deu continuidade, porquê?

http://fivewin.com.br/index.php?/topic/27293-tgif/

Obg. abs.

Saudações.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7151
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: TGif

Postby oliveiros junior » Thu Nov 09, 2017 1:41 pm

Olá Cristobal,

Obrigado pela resposta. Acho que eu não me expressei direito. Vou colocar abaixo minha rotina para explicar melhor.

Chamada:

Executar_Acao( { || oObejto := oAcao:ReQuery() } )

Função: Utilizando o codblock do classe TGif

Function Executar_Acao( bAcao )
Local oDialog, oGif

DEFINE DIALOG oDialog NAME "Executar_Acao" TRANSPARENT COLOR CLR_BLACK, CLR_WHITE

WITH OBJECT oDialog
:bStart := { || Eval( oGif:bLClicked, SysRefreh() ), oDialog:End() }
END

ACTIVATE DIALOG oDialog NOWAIT CENTERED ;
ON INIT oGif := TGif( oDialog, "meter.gif", 0,0,,,,, bAcao )
Return

Função: Sem utilizar o codblock da classe executando diretamente o codbloc passado como parâmetro

Local oDialog, oGif

DEFINE DIALOG oDialog NAME "Executar_Acao" TRANSPARENT COLOR CLR_BLACK, CLR_WHITE

WITH OBJECT oDialog
:bStart := { || Eval( bAcao, SysRefreh() ), oDialog:End() }
END

ACTIVATE DIALOG oDialog NOWAIT CENTERED ;
ON INIT oGif := TGif( oDialog, "meter.gif", 0,0 )

Nos dois casos o gif aparece, porém estático.

Olá Karinha,

Obrigado pela resposta.
Att,

Oliveiros Junior
oliveiros junior
 
Posts: 122
Joined: Tue Mar 20, 2007 3:13 pm

Re: TGif

Postby oliveiros junior » Thu Nov 09, 2017 1:50 pm

Hola Cristobal,

Gracias por la respuesta. Creo que no me expresé derecho. Voy a poner mi rutina para explicar mejor.

Llamada:

Executar_Acao( { || oObejto := oAcao:ReQuery() } )

Función: Utilizando el codblock de la clase TGif

Function Executar_Acao( bAcao )
Local oDialog, oGif

DEFINE DIALOG oDialog NAME "Executar_Acao" TRANSPARENT COLOR CLR_BLACK, CLR_WHITE

WITH OBJECT oDialog
:bStart := { || Eval( oGif:bLClicked, SysRefreh() ), oDialog:End() }
END

ACTIVATE DIALOG oDialog NOWAIT CENTERED ;
ON INIT oGif := TGif( oDialog, "meter.gif", 0,0,,,,, bAcao )
Return

Función: Sin utilizar el codblock de la clase ejecutando directamente el codbloc pasado como parámetro

Function Executar_Acao( bAcao )

Local oDialog, oGif

DEFINE DIALOG oDialog NAME "Executar_Acao" TRANSPARENT COLOR CLR_BLACK, CLR_WHITE

WITH OBJECT oDialog
:bStart := { || Eval( bAcao, SysRefreh() ), oDialog:End() }
END

ACTIVATE DIALOG oDialog NOWAIT CENTERED ;
ON INIT oGif := TGif( oDialog, "meter.gif", 0,0 )

En los dos casos el gif aparece, pero estático durante la ejecución del codblock

Gracias

Oliveiros Junior
oliveiros junior
 
Posts: 122
Joined: Tue Mar 20, 2007 3:13 pm

Re: TGif

Postby cnavarro » Thu Nov 09, 2017 1:55 pm

Ok,
First test with

Code: Select all  Expand view

:bStart := { || Eval( bAcao, SysRefreh() ), oDialog:End() }

// prueba con

:bStart := { || Eval( bAcao ), SysRefreh(), oDialog:End() }
 
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6498
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: TGif

Postby oliveiros junior » Thu Nov 09, 2017 2:35 pm

Hola cristobal,

Así tampoco funciona. El Gif se queda estático.

Att.,

Oliveiros Junior
oliveiros junior
 
Posts: 122
Joined: Tue Mar 20, 2007 3:13 pm

Re: TGif

Postby Ariel » Thu Nov 09, 2017 3:07 pm

Hola,
me pasa lo mismo, el gif no corre... y si la app.
Saludos.
Ariel
 
Posts: 374
Joined: Wed Nov 29, 2006 1:51 pm
Location: Rosario - Argentina

Re: TGif

Postby karinha » Thu Nov 09, 2017 3:15 pm

Ariel wrote:Hola,
me pasa lo mismo, el gif no corre... y si la app.
Saludos.



Ariel, muestra un ejemplo autocontenido porfa.


Gracias, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7151
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: TGif

Postby karinha » Thu Nov 09, 2017 6:09 pm

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7151
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: TGif

Postby cnavarro » Mon Nov 27, 2017 2:45 am

Bueno, como no he llegado a entender lo que necesitabas, pongo un ejemplo que desarrollé hace algún tiempo a ver si te sirve de algo
Yo activo las tareas en segundo plano con un botón de la buttonbar, pero igual puedes hacerlo con un evento del gif ( que creo que puede ser lo que intentabas hacer )
Espero que por lo menos lo encuentres interesante

Recuerda cambiar en tu script de compilación la libreria HBVM.LIB por HBVMMT.LIB de harbour y la librería CW32.LIB por CW32MT.LIB en Borland
Y ya de paso cuando lo pruebes, vuelve a pulsar el boton TEST sin esperar a que termine
Dime si lo has encontrado util

Code: Select all  Expand view

//----------------------------------------------------------------------------//
// Programa: TESTMT01.PRG
// Autor...: Cristobal Navarro
//----------------------------------------------------------------------------//

#include "Fivewin.ch"
#include "hbthread.ch"
#include "gif.ch"

Static oPnel1

Function Main()

   local oWnd
   local oBar
   local oBtt1
   local oBtt2
   local uTh1
   local uTh2
   local uTh3

    DEFINE DIALOG oWnd FROM 0, 0 TO 660, 1100 TITLE "Test" PIXEL //MDI

      DEFINE BUTTONBAR oBar SIZE 48, 48 OF oWnd
      DEFINE BUTTON oBtt1 PROMPT "Salir" OF oBar ACTION oWnd:End() TOOLTIP "Salir"
      DEFINE BUTTON oBtt2 PROMPT "Test"  OF oBar ;
         ACTION ( uTh1 := hb_threadStart( HB_THREAD_INHERIT_PUBLIC, @WTest(), "Hello", 120 ),;
                  uTh2 := hb_threadStart( HB_THREAD_INHERIT_PUBLIC, @WTest(), 333, 120 ),;
                  MsgWait( "Process", "Modal", 10  ))
   
   ACTIVATE DIALOG oWnd ;
      ON INIT ( HazPnel( oWnd ), CrearGif( oWnd ) ) ;
      VALID ( hb_threadTerminateAll(), .T. )
Return NIL

//----------------------------------------------------------------------------//

Function WTest( u, nF )

   local x := 1
   if Valtype( u ) = "N"
      For x = 1 to 300 step 15
         @ nF + x, 60 SAY "Thread 2" OF oPnel1 PIXEL COLOR CLR_BLACK
         SysRefresh()
         hb_idleSleep( 0.8 )
      Next x
   else
      For x = 1 to 300 step 15
         @ nF + x, 4 SAY "Thread 1" OF oPnel1 PIXEL COLOR CLR_RED
         SysRefresh()
         hb_idleSleep( 0.8 )
      Next x
   endif

Return nil

//----------------------------------------------------------------------------//

Function HazPnel( oWnd )

   @ 50, 400 PANEL oPnel1 OF oWnd SIZE 200, 550
   oPnel1:SetColor( CLR_BLACK, CLR_YELLOW )
   
Return oPnel1

//----------------------------------------------------------------------------//

Function CrearGif( oDlg )
   
   local oGif
   @ 60, 10 GIF oGif FILE "..\gifs\matrix.gif" OF oDlg SIZE 100, 100 //ADJUST //

Return nil

//----------------------------------------------------------------------------//
 
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6498
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: TGif

Postby oliveiros junior » Mon Nov 27, 2017 1:32 pm

Hola Cristobal,

Gracias por la respuesta. Voy a probar y volveré aquí.

Por su parte,

Oliveiros Junior
oliveiros junior
 
Posts: 122
Joined: Tue Mar 20, 2007 3:13 pm

Next

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 6 guests