DOS Dudas

DOS Dudas

Postby Loren » Sun Jan 19, 2014 8:43 pm

Compañeros, muy buenas:

Tengo 2 dudas y no consigo resolverlas:

1) ¿Cómo insertar un GIF animado en un DIALOGS construido desde RECURSO? Probé según testgif.prg, haciendo un
TGif():New( oWnd, "..\gifs\halo.gif", 10, 10 ), pero no llega NI a aparecer el GIF

2) ¿Se puede hacer que aparezca un msginfo en una solapa "disable" de un folder cuando el usuario haga "click" ?

Mil gracias.
Un saludo.
LORENZO,
desde Cádiz, España
Loren
 
Posts: 479
Joined: Fri Feb 16, 2007 10:29 am
Location: Cadiz - España

Re: DOS Dudas

Postby FranciscoA » Mon Jan 20, 2014 2:32 pm

Hola, aqui tienes un ejemplo completo, usando METEREX :
Code: Select all  Expand view
//---------------------------------------------------------------------
Function ReIndexar(aAlias, lTodo)
local oDlg, oAnimate, oMeter1, oMeter2, oSay1, oSay2, oSay3, oBtnCancel
local lEnd:=.f.
local n:=0, nMonto1:=0, nMonto2:=0
local oAnimate2
local nProg,nProg2


DEFAULT lTodo:=.f.

   DEFINE DIALOG oDlg RESOURCE "CopyFiles" TRANSPARENT ;
          TITLE "Creando ficheros indices (Reindexando)"

   REDEFINE SAY oSay1 ID 110 OF oDlg //COLOR nClrTxt
   REDEFINE SAY oSay2 ID 120 OF oDlg //COLOR nClrTxt

   REDEFINE SAY oSay3 ID 140 OF oDlg //COLOR nClrTxt

   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 ROUND ; // ROUNDSIZE 6 //;
            GRADIENT CHUNK { { 1/2, nRGB( 255, 251, 229 ), nRGB( 250, 223, 143 ) } , ;  //barra
                              { 1/2, nRGB( 244, 194,  51 ), nRGB( 252, 235, 173 ) } } ;
            LINECOLORS nRGB( 110, 151,204 ), CLR_WHITE  //borde


   REDEFINE BUTTON oBtnCancel ID 2 OF oDlg //;
      ***ACTION ( lEnd := .t., SysRefresh(), MisAreas(), oAnimate:Stop(), MsgStop("Reindexacion ha sido abortada por el usuario.","Advertencia"), oDlg:End() )

   oMeter2:nTotal = LEN(aIndices)
   nTotAvance:=0

  oDlg:bStart := { || oBtnCancel:Hide(),;
                      oAnimate:=TGif():New( oDlg, ".\Clip1.gif", 1,oDlg:nLeft()+40),;
                      oAnimate2:=TGif():New( oDlg, ".\RelojArena.gif", 1,oDlg:nWidth()-120),;
                      Reindexe( aAlias, oSay1, oSay2, oSay3, oMeter1, oMeter2, @lEnd, oDlg, lTodo ) }


   ACTIVATE DIALOG oDlg CENTERED

       oAnimate:Stop()
       oAnimate2:Stop()
       SysRefresh()

Return NIL

//---------------------------------------------------------------------------
Function Reindexe( aAlias, oSay1, oSay2, oSay3, oMeter1, oMeter2, lEnd, oDlg, lTodo )
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"
     IntegIndex( oSay2,oMeter1,oMeter2,oSay3,"mcontab->cuenta+mcontab->scuenta+mcontab->sscuenta+mcontab->ssscuenta+mcontab->sssscuenta","MCONTAB" )
     IntegIndex( oSay2,oMeter1,oMeter2,oSay3,"mcontab->nombre","MCONTNOM" )

  ElseIf UPPER( aAlias[n] )="COMPROBD"
     IntegIndex( oSay2,oMeter1,oMeter2,oSay3,"COMPROBD->NUMDOC","COMPROBD" )
     IntegIndex( oSay2,oMeter1,oMeter2,oSay3,"COMPROBD->CTA+COMPROBD->SCTA+COMPROBD->SSCTA+COMPROBD->SSSCTA+COMPROBD->SSSSCTA","COMPDCTA" )
     IntegIndex( oSay2,oMeter1,oMeter2,oSay3,"COMPROBD->FECHEMIS","COMPDFEC" )


  ElseIf UPPER( aAlias[n] )="NOTASDC"
     IntegIndex( oSay2,oMeter1,oMeter2,oSay3,"NOTASDC->numdoc","NOTASDC" )
     IntegIndex( oSay2,oMeter1,oMeter2,oSay3,"NOTASDC->cta+NOTASDC->scta+NOTASDC->sscta+NOTASDC->ssscta+NOTASDC->sssscta","NOTASCTA" )
     IntegIndex( oSay2,oMeter1,oMeter2,oSay3,"NOTASDC->FECHEMIS","NOTASFEC" )
  Endif
 ENDIF
Next


  nFinaliza:= (Seconds()-nInicia)/60
  if lTodo
     MisAreas()
     WritePProString("config","UltReindex",Dtoc(date()),cIniFile)
     SysRefresh()
     MsgWait("Reindexación completada." + "  Tiempo (Minutos): "+alltrim(str(nFinaliza)),,2)
  endif

  SysRefresh()
  oDlg:End()
return(NIL)

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

   oSay2:SetText( "Integrando Indice " + cNombIndice )

   nTotal := LastRec()
   nStep := 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
User avatar
FranciscoA
 
Posts: 2158
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: DOS Dudas

Postby karinha » Mon Jan 20, 2014 2:43 pm

Excelente Francisco, Puedes disponibilizar, Clip1.gif y RelojArena.gif, porfa?

".\Clip1.gif", 1,oDlg:nLeft()+40),;
oAnimate2:=TGif():New( oDlg, ".\RelojArena.gif"

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

Re: DOS Dudas

Postby FranciscoA » Mon Jan 20, 2014 2:48 pm

Para lo segundo (solo una idea), prueba con:
if obj:lActive = .f.
obj:bLClicked := {|| MsgInfo("Hola") }
endif
Francisco J. Alegría P.
Chinandega, Nicaragua.

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

Re: DOS Dudas

Postby FranciscoA » Mon Jan 20, 2014 3:04 pm

Francisco J. Alegría P.
Chinandega, Nicaragua.

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

Re: DOS Dudas

Postby karinha » Mon Jan 20, 2014 3:16 pm

Muchas Gracias Francisco.

Conoces algún sitio asi?

http://www.reinodosgifs.net/

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

Re: DOS Dudas

Postby FranciscoA » Mon Jan 20, 2014 5:17 pm

Muchas gracias, Karinha. Está muy bueno.
Saludos.
Francisco J. Alegría P.
Chinandega, Nicaragua.

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

Re: DOS Dudas

Postby Loren » Tue Jan 21, 2014 1:17 pm

Gracias FranciscoA

Muy amable.

Saludos desde
Cádiz, España
Loren
 
Posts: 479
Joined: Fri Feb 16, 2007 10:29 am
Location: Cadiz - España

Re: DOS Dudas

Postby Loren » Tue Jan 21, 2014 1:51 pm

FranciscoA

Lamento decirte que tu sugerencia sobre los FOLDER DISABLE NO funciona. Lo he adaptado a mi código pero "NO sonó la flauta".

En mi caso tengo 4 folder, donde el último está DISABLE según determinadas opciones. Mi idea es que, en caso de hacer click en dicho folder y este esté DISABLE, activar un msginfo al usuario.

Haber foro, ¿Alguna otra idea?
Gracias. Un saludo.
LORENZO
Loren
 
Posts: 479
Joined: Fri Feb 16, 2007 10:29 am
Location: Cadiz - España

Re: DOS Dudas

Postby karinha » Tue Feb 18, 2014 1:36 pm

Francisco, este ejemplo muestra el porcentaje del índice?

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

Re: DOS Dudas

Postby Loren » Thu Mar 27, 2014 10:03 pm

Haber, compañeros:

No quisiera ser pesado.... pero sigo sin que la "flauta suene"

He descubierto que si inserto un msginfo('hola'), el GIF se anima, y cuando se cierra el msginfo el GIF vuelve pararse.

Este es mi código:
Code: Select all  Expand view
funct actualizar(lmesage)
 Local oAnimate
 aFiles:={}
 cmensaje:='... Conectando con el servidor ...'
 DEFAULT lmesage:=.f.   &&& mensage
 DEFINE FONT oFnt1  NAME "Century Gothic" SIZE 15, 40 BOLD
 DEFINE FONT oFnt2  NAME "Century Gothic" SIZE 0,  20 BOLD
 define dialog vera2 resource 'actualiza1' STYLE nOr( WS_POPUP, WS_VISIBLE ) COLOR CLR_WHITE, CLR_BLACK
  REDEFINE BITMAP inten id 4003 of vera2 file CAMINO+'\images\metro\internet.bmp' transparent
  redefine say otex1 prompt 'Buscando actualizaciones...' id 4002 of vera2 color CLR_WHITE, CLR_BLACK font oFnt1
  redefine say otex  prompt 'Esta operación puede tardar varios segundos... espere, por favor' id 4004 of vera2 color CLR_HGRAY, CLR_BLACK
  redefine say otex2 prompt cmensaje id 4001 of vera2 color CLR_GREEN, CLR_BLACK font oFnt2
  vera2:bStart := { || (oAnimate:=TGif():New( vera2, ".\images\metro\loader.gif", 190,vera2:nLeft()+320)) }
 activate dialog vera2 center nowait
 cFile  :=GetModuleFileName(GetInstance())
 cServer:=alltrim(actual_ns)     && actual_ns = actualizar. nombre servidor
 cUser  :=alltrim(actual_nu)     && actual_nu = actualizar. nombre usuario
 cPass  :='xxxxxxxxx'
msginfo('hola')   && <---- aquí se activa el GIF. Cuando cierro, se para.
 CURSORWAIT()
 if !empty(cServer) .and. !empty(actual_CA) .and. file(camino+'ActVer.exe')
  oInternet:=tinternet():New()
  oFtp     :=tFtp():New(cServer,oInternet,cUser,cPass)
  if !Empty( oFtp:hFtp )
   cmensaje='Conectado al servidor... y cotejando versiones.'
.....
.....


Ya probé también siguiendo los pasos de "\samples\win32.prg"... Pero sin exito

Maestro, por favor, deme alguna idea.
Gracias. LORENZO.
Loren
 
Posts: 479
Joined: Fri Feb 16, 2007 10:29 am
Location: Cadiz - España

Re: DOS Dudas

Postby FranciscoA » Fri Mar 28, 2014 1:32 am

Yo lo intentaría asi:
Code: Select all  Expand view
funct actualizar(lmesage)
 Local oAnimate
 aFiles:={}
 cmensaje:='... Conectando con el servidor ...'
 DEFAULT lmesage:=.f.   &&& mensage
 DEFINE FONT oFnt1  NAME "Century Gothic" SIZE 15, 40 BOLD
 DEFINE FONT oFnt2  NAME "Century Gothic" SIZE 0,  20 BOLD
 define dialog vera2 resource 'actualiza1' STYLE nOr( WS_POPUP, WS_VISIBLE ) COLOR CLR_WHITE, CLR_BLACK
  REDEFINE BITMAP inten id 4003 of vera2 file CAMINO+'\images\metro\internet.bmp' transparent
  redefine say otex1 prompt 'Buscando actualizaciones...' id 4002 of vera2 color CLR_WHITE, CLR_BLACK font oFnt1
  redefine say otex  prompt 'Esta operación puede tardar varios segundos... espere, por favor' id 4004 of vera2 color CLR_HGRAY, CLR_BLACK
  redefine say otex2 prompt cmensaje id 4001 of vera2 color CLR_GREEN, CLR_BLACK font oFnt2
  vera2:bStart := { || oAnimate:=TGif():New( vera2, ".\images\metro\loader.gif", 190,vera2:nLeft()+320) ,;
                                 Actualizando(x,x,x,x,x,x) }
 activate dialog vera2 center nowait ;
     VALID ( oAnimate:End(), .t. )

RETURN LoQueDecidas    
//-------------------------------------
Function Actualizando(x,x,x,x,x,x)   // pasar los parametros necesarios
 cFile  :=GetModuleFileName(GetInstance())
 cServer:=alltrim(actual_ns)     && actual_ns = actualizar. nombre servidor
 cUser  :=alltrim(actual_nu)     && actual_nu = actualizar. nombre usuario
 cPass  :='xxxxxxxxx'

 CURSORWAIT()
 if !empty(cServer) .and. !empty(actual_CA) .and. file(camino+'ActVer.exe')
   oInternet:=tinternet():New()
   oFtp     :=tFtp():New(cServer,oInternet,cUser,cPass)
   if !Empty( oFtp:hFtp )
      cmensaje='Conectado al servidor... y cotejando versiones.'
      oText2:SetText(cMensaje)   ;   oText2:Refresh()
.....
.....
//Supongo que por aqui cierras el dialog
.....
Return LoQueDecidas
 
Francisco J. Alegría P.
Chinandega, Nicaragua.

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


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 36 guests