Gif y MsgRun

D.Fernandez
Posts: 392
Joined: Wed Jul 31, 2013 1:14 pm
Location: Maldonado - Uruguay
Contact:

Gif y MsgRun

Post by D.Fernandez »

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, Harbour, BCC, MySql & MariaDB, tData, Dbf/Cdx
VSCode.
Maldonado - Uruguay
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Gif y MsgRun

Post by karinha »

No és mejor un MSGMETER()?

Saludos.
Last edited by karinha on Fri Sep 25, 2015 3:15 pm, edited 1 time in total.
João Santos - São Paulo - Brasil
User avatar
FranciscoA
Posts: 1964
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Gif y MsgRun

Post by FranciscoA »

Ruben, prueba este codigo.

Code: Select all

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.

Fwxh1204-MySql-TMySql
rubenfernandez01
Posts: 23
Joined: Sun Sep 20, 2015 1:41 am

Re: Gif y MsgRun

Post by rubenfernandez01 »

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
jbrita
Posts: 425
Joined: Mon Jan 16, 2006 3:42 pm

Re: Gif y MsgRun

Post by jbrita »

Ruben y esto te funciono

Saludos
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Gif y MsgRun

Post by karinha »

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

Saludos.
João Santos - São Paulo - Brasil
User avatar
juan_arroyo_t
Posts: 196
Joined: Fri May 15, 2009 1:25 am
Location: Cuautitlán, Mexico

Re: Gif y MsgRun

Post by juan_arroyo_t »

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
jbrita
Posts: 425
Joined: Mon Jan 16, 2006 3:42 pm

Re: Gif y MsgRun

Post by jbrita »

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

saludos
User avatar
FranciscoA
Posts: 1964
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Gif y MsgRun

Post by FranciscoA »

jbrita wrote:Hola Francisco... tienes un email.. pra contactarte

saludos
falegria230349 arroba yahoo.es
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh1204-MySql-TMySql
User avatar
FranciscoA
Posts: 1964
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Gif y MsgRun

Post by FranciscoA »

jbrita.
Codigo enviado. Revisa tu email.
Saludos
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh1204-MySql-TMySql
jbrita
Posts: 425
Joined: Mon Jan 16, 2006 3:42 pm

Re: Gif y MsgRun

Post by jbrita »

Muy amable .. Gracias
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Gif y MsgRun

Post by karinha »

Francisco, porfa:

kapiabafwh arroba gmail.com

Regards, saludos.
João Santos - São Paulo - Brasil
User avatar
leandro
Posts: 958
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Contact:

Re: Gif y MsgRun

Post by leandro »

Me uno a la solicitud :oops:
Saludos
LEANDRO ALFONSO
SISTEMAS LYMA - BASE
Bogotá (Colombia)
[ FWH 19.09 ] [ xHarbour 1.2.3 Intl. (SimpLex) (Build 20190613) ] [ Embarcadero C++ 7.30 for Win32 ]
User avatar
albeiroval
Posts: 323
Joined: Tue Oct 16, 2007 5:51 pm
Location: Barquisimeto - Venezuela

Re: Gif y MsgRun

Post by albeiroval »

+1

albeiroval arroba gmail punto com
Saludos,
Regards,

Albeiro Valencia
www.avcsistemas.com
User avatar
FranciscoA
Posts: 1964
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Gif y MsgRun

Post by FranciscoA »

Hola amigos.
Aqui les dejo el codigo de ejemplo.
Es el mismo que hace algún tiempo posteé aquí, https://forums.fivetechsupport.com/view ... if#p156161
con _ leves, sobre todo referente a la function TGif().

Code: Select all

#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.

Fwxh1204-MySql-TMySql
Post Reply