TGif
-
- Posts: 84
- Joined: Tue Mar 20, 2007 3:13 pm
TGif
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
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
Re: TGif
Prueba esto a ver si te ayuda
Code: Select all
#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
//----------------------------------------------------------------------------//
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
-
- Posts: 84
- Joined: Tue Mar 20, 2007 3:13 pm
Re: TGif
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
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
Re: TGif
Tente assim:
Code: Select all
#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
Re: TGif
Disculpa, entonces no he entendido lo que necesitasoliveiros 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
Google Translate no me traduce sus palabras, Joao?
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Re: TGif
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.
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
-
- Posts: 84
- Joined: Tue Mar 20, 2007 3:13 pm
Re: TGif
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
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
-
- Posts: 84
- Joined: Tue Mar 20, 2007 3:13 pm
Re: TGif
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 _ el gif aparece, pero estático durante la ejecución del codblock
Gracias
Oliveiros Junior
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 _ el gif aparece, pero estático durante la ejecución del codblock
Gracias
Oliveiros Junior
Re: TGif
Ok,
First test with
First test with
Code: Select all
:bStart := { || Eval( bAcao, SysRefreh() ), oDialog:End() }
// prueba con
:bStart := { || Eval( bAcao ), SysRefreh(), oDialog:End() }
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
-
- Posts: 84
- Joined: Tue Mar 20, 2007 3:13 pm
Re: TGif
Hola cristobal,
Así tampoco funciona. El Gif se queda estático.
Att.,
Oliveiros Junior
Así tampoco funciona. El Gif se queda estático.
Att.,
Oliveiros Junior
Re: TGif
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
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
//----------------------------------------------------------------------------//
// 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
//----------------------------------------------------------------------------//
C. Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
Si alguien te dice que algo no se puede hacer, recuerda que esta hablando de sus limitaciones, no de las tuyas.
-
- Posts: 84
- Joined: Tue Mar 20, 2007 3:13 pm
Re: TGif
Hola Cristobal,
Gracias por la respuesta. Voy a probar y volveré aquí.
Por su parte,
Oliveiros Junior
Gracias por la respuesta. Voy a probar y volveré aquí.
Por su parte,
Oliveiros Junior