FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Gif y MsgRun
Posts: 555
Joined: Wed Jul 31, 2013 01:14 PM

Gif y MsgRun

Posted: Fri Sep 25, 2015 01:57 PM

Amigos: Hay alguna posibilidad de mostrar un gif ( o similar), mientras se haga un proceso con MsgRun().
Algo así como una barrita que en su interior se mueva algo de der. a izq. a der. o un circulo que pase de vacio a lleno .
No es un proceso largo lo que debo hacer pero, me gustaría.

Gracias, saludos

Ruben D. Fernandez

Dario Fernandez

FWH 2501, Harbour, MVS2022 Community, MySql & MariaDB, Dbf/Cdx VSCode.

Maldonado - Uruguay
Posts: 8523
Joined: Tue Dec 20, 2005 07:36 PM

Re: Gif y MsgRun

Posted: Fri Sep 25, 2015 02:20 PM

No és mejor un MSGMETER()?

Saludos.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM

Re: Gif y MsgRun

Posted: Fri Sep 25, 2015 03:06 PM
Ruben, prueba este codigo.
Code (fw): Select all Collapse
Function MsgMeter( bAction, cMsg, cTitle, lBoton )
   local oDlg, oMeter, oText, oBtn, oFont, oIco
   local lEnd := .f., lCancel := .f.
   local nVal := 0
   local oAnimate

   DEFAULT bAction := { || nil },;
           cMsg := "Procesando...", cTitle := "Aguarde por favor",;
           lBoton := .f.

   DEFINE DIALOG oDlg RESOURCE "MSGMETER" TRANSPARENT  
   REDEFINE SAY ID 111 OF oDlg 
   REDEFINE SAY oText VAR cMsg ID 110 OF oDlg 
   REDEFINE METER oMeter VAR nVal TOTAL 10 ID 130 OF oDlg

 if lBoton
   @  2.8,  18  BUTTON oBtn PROMPT "&Cancel" OF oDlg ;
      ACTION ( lEnd:= .t., lCancel:= .t. ) SIZE 32, 11
 endif

   // This block gets evaluated only the first time the DialogBox is painted !!!
   oDlg:bStart = { || oAnimate:=TGif():New( oDlg, ".\Clip1.gif", 1,oDlg:nLeft() ),;     //Ponle el gif que prefieras
                      Eval( bAction, oMeter, oText, oDlg, @lEnd, oBtn ),;
                      lEnd := .t., oDlg:End() }

   ACTIVATE DIALOG oDlg CENTERED ;
      VALID lEnd
      oAnimate:Stop()
return lCancel

Saludos.
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 48
Joined: Sun Sep 20, 2015 01:41 AM

Re: Gif y MsgRun

Posted: Fri Sep 25, 2015 03:21 PM

Francisco muchas gracias. Lo pruebo y comento. Saludos y gracias. No estoy en la oficina ahora.
Ruben D. Fernández

Enviado desde mi SM-G900M mediante Tapatalk

Posts: 537
Joined: Mon Jan 16, 2006 03:42 PM

Re: Gif y MsgRun

Posted: Sat Apr 07, 2018 04:20 PM

Ruben y esto te funciono

Saludos

Posts: 8523
Joined: Tue Dec 20, 2005 07:36 PM

Re: Gif y MsgRun

Posted: Mon Apr 09, 2018 02:24 PM

Francisco, falta el archivo .RC con el dialogo: "MSGMETER" gracias

Saludos.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 196
Joined: Fri May 15, 2009 01:25 AM

Re: Gif y MsgRun

Posted: Tue Apr 24, 2018 02:18 PM

Ruben

Quisiera saber si esto te funcionó y si lo pudeiras compartir
Gracias

Juan Arroyo
México
FWH 7.12 VERCE 5.3 xHarbour 1.1.0
juan_arroyo_t@hotmail.com
Posts: 537
Joined: Mon Jan 16, 2006 03:42 PM

Re: Gif y MsgRun

Posted: Sat Nov 07, 2020 02:13 PM

Hola Francisco... tienes un email.. pra contactarte

saludos

Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM

Re: Gif y MsgRun

Posted: Sat Nov 07, 2020 02:28 PM
jbrita wrote:Hola Francisco... tienes un email.. pra contactarte

saludos

falegria230349 arroba yahoo.es
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM

Re: Gif y MsgRun

Posted: Sun Nov 08, 2020 10:26 PM

jbrita.
Codigo enviado. Revisa tu email.
Saludos

Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 537
Joined: Mon Jan 16, 2006 03:42 PM

Re: Gif y MsgRun

Posted: Mon Nov 09, 2020 12:51 AM

Muy amable .. Gracias

Posts: 8523
Joined: Tue Dec 20, 2005 07:36 PM

Re: Gif y MsgRun

Posted: Mon Nov 09, 2020 12:44 PM

Francisco, porfa:

kapiabafwh arroba gmail.com

Regards, saludos.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 1818
Joined: Wed Oct 26, 2005 02:49 PM

Re: Gif y MsgRun

Posted: Mon Nov 09, 2020 02:54 PM

Me uno a la solicitud :oops:

Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
Posts: 400
Joined: Tue Oct 16, 2007 05:51 PM

Re: Gif y MsgRun

Posted: Mon Nov 09, 2020 08:54 PM

+1

albeiroval arroba gmail punto com

Saludos,
Regards,

Albeiro Valencia
www.avcsistemas.com
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM

Re: Gif y MsgRun

Posted: Mon Nov 09, 2020 10:22 PM
Hola amigos.
Aqui les dejo el codigo de ejemplo.
Es el mismo que hace algún tiempo posteé aquí, viewtopic.php?f=6&t=27967&hilit=tgif#p156161
con algunos cambios leves, sobre todo referente a la function TGif().

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

Function GifDlgFromRes()
  local aAlias := {"MCONTAB","MCONMOV"} 
  local aIndices := {"INDICE1","INDICE2","INDICE3","INDICE4","INDICE5","INDICE6","INDICE7"}
  local n

  For n:=1 to len(aAlias)
     DBUSEAREA(.T.,, aAlias[n], aAlias[n], .F. )
  Next

  ReIndx(aAlias, aIndices)
Return nil

//---------------------------------------------------------------------
Function ReIndx(aAlias, aIndices)
local oDlg, oAnimate, oMeter1, oMeter2, oSay1, oSay2, oSay3
local lEnd:=.f.
local n:=0, nMonto1:=0, nMonto2:=0
local nProg,nProg2

   DEFINE DIALOG oDlg RESOURCE "CopyFiles" TRANSPARENT COLOR CLR_BLACK, CLR_WHITE ;
          TITLE "Creando ficheros indices (Reindexando)"

   REDEFINE SAY oSay1 ID 110 OF oDlg
   REDEFINE SAY oSay2 ID 120 OF oDlg
   REDEFINE SAY oSay3 ID 140 OF oDlg 

   REDEFINE METEREX oMeter1 VAR nProg ID 130 TOTAL 50 ROUND  ; // ROUNDSIZE 6 //;
            GRADIENT TRACK { { 1/2, nRGB( 198, 203, 213 ), nRGB( 219, 224, 233 ) },;   //fondo
                              { 1/2, nRGB( 224, 238, 237 ), nRGB( 224, 238, 237 ) } } ;
            LINECOLORS nRGB( 110, 151,204 ), CLR_WHITE  //Borde

    REDEFINE METEREX oMeter2 VAR nProg2 ID 150 TOTAL 50 ;
             GRADIENT CHUNK { { 1/2, nRGB( 255, 251, 229 ), nRGB( 250, 223, 143 ) } , ;
                              { 1/2, nRGB( 244, 194,  51 ), nRGB( 252, 235, 173 ) } } ;
             GRADIENT TRACK { { 1/2, nRGB( 198, 203, 213 ), nRGB( 219, 224, 233 ) },;   //fondo
                              { 1/2, nRGB( 224, 238, 237 ), nRGB( 224, 238, 237 ) } } ;
             LINECOLORS nRGB( 110, 151,204 ), CLR_WHITE  //borde

   oMeter2:nTotal = LEN(aIndices) 
   nTotAvance:=0
   nFactorAv:= 100/len(aIndices)

  oDlg:bStart := { || oAnimate:=TGif():New( oDlg, ".\avion7.gif", 14,20,64,64,,.t.),;
                      Reindexa( aAlias, oSay1, oSay2, oSay3, oMeter1, oMeter2, @lEnd, oDlg, oAnimate ) } 

   ACTIVATE DIALOG oDlg CENTERED

   for n:=1 to len(aAlias)
      (aAlias[n])->(DBCloseArea()) 
   next
   for n:=1 to len(aIndices)     // Borramos porque solo es un ejemplo
      Ferase( ".\" + aIndices[n] + ".ntx" )
   next

   SysRefresh()
Return NIL

//---------------------------------------------------------------------------
Function Reindexa( aAlias, oSay1, oSay2, oSay3, oMeter1, oMeter2, lEnd, oDlg, oAnimate )
local n:=0
local nInicia:=Seconds(),nFinaliza:=0

   oMeter2:Set( 0 )

For n := 1 to Len( aAlias )
  IF ! File( aAlias[ n ]+".dbf" )
       MsgInfo( "Fichero no encontrado: " + aAlias[ n ], "Advertencia" )
       loop
  ELSE

     DBSELECTAREA( aAlias[n] )

    oSay1:SetText( "Base de Datos Actual: " + upper(aAlias[n]) )

    If UPPER( aAlias[n] )="MCONTAB" 
       IntegIndx( oSay2,oMeter1,oMeter2,oSay3,"mcontab->codicont","INDICE1" ) 
       IntegIndx( oSay2,oMeter1,oMeter2,oSay3,"mcontab->nombre","INDICE2" )

    ElseIf UPPER( aAlias[n] )="MCONMOV"
       IntegIndx( oSay2,oMeter1,oMeter2,oSay3,"MCONMOV->NUMDOC","INDICE3" )
       IntegIndx( oSay2,oMeter1,oMeter2,oSay3,"MCONMOV->CODICONT","INDICE4" )
       IntegIndx( oSay2,oMeter1,oMeter2,oSay3,"MCONMOV->FECHEMIS","INDICE5" )
       IntegIndx( oSay2,oMeter1,oMeter2,oSay3,"MCONMOV->TD+STR(NUMDOC)","INDICE6" )
       IntegIndx( oSay2,oMeter1,oMeter2,oSay3,"MCONMOV->NOMBRE","INDICE7" )
    Endif
 ENDIF
Next

  nFinaliza:= (Seconds()-nInicia)/60 
  SysRefresh()

  oAnimate:Stop()

  MsgInfo("Reindexación completada." + "  Tiempo (Minutos): "+alltrim(str(nFinaliza)),,2)

  oDlg:End()
RETURN NIL

//----------------------------------------------------------------
Function IntegIndx( oSay2,oMeter1,oMeter2,oSay3,Campos,cNombIndice )
local nVar, nStep, nTotal

   oSay2:SetText( "Integrando Indice " + cNombIndice )

   nTotal := LastRec()
   nStep := 1   // Max( Int( nTotal * .02 ), 1 ) // actualizar el meter cada 2% del progreso es mas rapido que por cada registro
   nVar := 0
   oMeter1:nTotal = nTotal
   oMeter1:Set( 0 )

   nTotAvance+=1

   INDEX ON &(Campos) TO &(cNombIndice);
   EVAL {|| oMeter1:Set( nVar += nStep ) , SysRefresh(), .t. } EVERY nStep

   oMeter1:Set( nTotal )
   oMeter2:Set( nTotAvance )
   oSay3:SetText( "Indices creados: "+Transform(nTotAvance,"99,999,999") )
Return nil
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql