Scripts para Harbour y FWH !!!

User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Scripts para Harbour y FWH !!!

Post by Antonio Linares »

We have modified DEFINE MSGBAR ... to accept 2007 clause too:

Code: Select all

#xcommand DEFINE <msg: MESSAGE, MESSAGE BAR, MSGBAR> [<oMsg>] ;
             [ OF <oWnd> ] ;
             [ <prm: PROMPT, TITLE> <cMsg> ] ;
             [ <center: CENTER, CENTERED> ] ;
             [ <clock: CLOCK, TIME> ] ;
             [ <date: DATE> ] ;
             [ <kbd: KEYBOARD> ] ;
             [ FONT <oFont> ] ;
             [ <color: COLOR, COLORS> <nClrFore> [,<nClrBack> ] ] ;
             [ <inset: NO INSET, NOINSET> ] ;
             [ <l2007: 2007, _2007> ] ;             
      => ;
         [<oMsg>:=] <oWnd>:oMsgBar := TMsgBar():New( <oWnd>, <cMsg>, <.center.>,;
                                      <.clock.>, <.date.>, <.kbd.>,;
                                      <nClrFore>, <nClrBack>, <oFont>,;
                                      [!<.inset.>], [<.l2007.>] )
regards, saludos

Antonio Linares
www.fivetechsoft.com
Simon
Posts: 105
Joined: Thu Oct 20, 2005 12:29 pm
Location: Maracaibo, Venezuela.

Re: Scripts para Harbour y FWH !!!

Post by Simon »

Todavia no doy con el problema, es compilando el script, habia comentado la linea del msgbar.

No tienen idea del porque me da ese error.
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Scripts para Harbour y FWH !!!

Post by Antonio Linares »

Simón,

Comprueba que tengas puestos los paths bien aqui:

Code: Select all

   oHrb = HB_CompileFromBuf( Scripts->Code, "-n", "-Ic:\fwh\include", "-Ic:\harbour\include" )
regards, saludos

Antonio Linares
www.fivetechsoft.com
Simon
Posts: 105
Joined: Thu Oct 20, 2005 12:29 pm
Location: Maracaibo, Venezuela.

Re: Scripts para Harbour y FWH !!!

Post by Simon »

Si esas son las carpetas, se me olvido mencionar que tengo instalado windows 7 de 64 bits, tengo vmware instalado estoy haciendo una maquina con windows xp de 32 pruebo y te aviso.
Simon
Posts: 105
Joined: Thu Oct 20, 2005 12:29 pm
Location: Maracaibo, Venezuela.

Re: Scripts para Harbour y FWH !!!

Post by Simon »

Reescribi scripts.prg, y ahora funciona perfectamente, esta buenimiso, se pueden usar funciones, recursos, variables que esten en nuestro exe.

Antonio no hay manera de hacer esto mismo sin necesidad de tener instalado el harbour ?
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Scripts para Harbour y FWH !!!

Post by Antonio Linares »

Simón,

No necesitas tener instalado Harbour! :-)

El compilador de Harbour está dentro de nuestros EXEs :-)

Lo que si necesitas son los ficheros de cabecera (.CH)
regards, saludos

Antonio Linares
www.fivetechsoft.com
Simon
Posts: 105
Joined: Thu Oct 20, 2005 12:29 pm
Location: Maracaibo, Venezuela.

Re: Scripts para Harbour y FWH !!!

Post by Simon »

ya he probado, y no necesito tampoco los de fivewin (a menos que necesite usar fivewin como xbase) , ahora necesito todos los archivos de cabecera de harbour o solo algunos ?
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Scripts para Harbour y FWH !!!

Post by Antonio Linares »

Solo para los comandos que uses desde tu script, por ejemplo: USE ...
regards, saludos

Antonio Linares
www.fivetechsoft.com
Simon
Posts: 105
Joined: Thu Oct 20, 2005 12:29 pm
Location: Maracaibo, Venezuela.

Re: Scripts para Harbour y FWH !!!

Post by Simon »

Antonio en caso de existir un error en el script, puedo capturar la linea del error con un try-catch ?
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Scripts para Harbour y FWH !!!

Post by Antonio Linares »

Simón,

Esta es una forma de hacerlo:

Code: Select all

function Execute()

   local oHrb, cResult, bOldError

   FReOpen_Stderr( "comp.log", "w" )
   oHrb = HB_CompileFromBuf( Scripts->Code, "-n", "-Ic:\fwh\include", "-Ic:\harbour\include" )
   oResult:SetText( If( Empty( cResult := MemoRead( "comp.log" ) ), "ok", cResult ) )
   
   if ! Empty( oHrb )
      BEGIN SEQUENCE
      bOldError = ErrorBlock( { | o | DoBreak( o ) } )
      hb_HrbRun( oHrb )
      END SEQUENCE
      ErrorBlock( bOldError )
   endif   

return nil

static function DoBreak( oError )

   local cInfo := oError:operation, n

   if ValType( oError:Args ) == "A"
      cInfo += "   Args:" + CRLF
      for n = 1 to Len( oError:Args )
         MsgInfo( oError:Args[ n ] )
         cInfo += "[" + Str( n, 4 ) + "] = " + ValType( oError:Args[ n ] ) + ;
                   "   " + cValToChar( oError:Args[ n ] ) + CRLF
      next
   endif

   MsgStop( oError:Description + CRLF + cInfo,;
            "Script error at line: " + Str( ProcLine( 4 ) ) )

   BREAK

return nil
 
regards, saludos

Antonio Linares
www.fivetechsoft.com
Simon
Posts: 105
Joined: Thu Oct 20, 2005 12:29 pm
Location: Maracaibo, Venezuela.

Re: Scripts para Harbour y FWH !!!

Post by Simon »

Claro begin/secuence, yo estaba usando try/catch.

Gracias Antonio, sigo probando.
Simon
Posts: 105
Joined: Thu Oct 20, 2005 12:29 pm
Location: Maracaibo, Venezuela.

Re: Scripts para Harbour y FWH !!!

Post by Simon »

Antonio esta linea

Code: Select all

MsgStop( oError:Description + CRLF + cInfo,;
            "Script error at line: " + Str( ProcLine( 4 ) ) )
 
devuelve el numero de linea pero del programa que lo esta ejecutando y no la linea del script, estuve probando y me funciono cambiando procline( 4 ) por procline( 2 ).
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Scripts para Harbour y FWH !!!

Post by Antonio Linares »

Simón,

gracias! :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
diegopolverelli
Posts: 149
Joined: Thu Jun 21, 2007 3:26 pm

Re: Scripts para Harbour y FWH !!!

Post by diegopolverelli »

se pueden agregar scripts que hagan uso de bases de datos???
puedo usar variables del programa principal???
por ej, quiero que lo que se ejecute, en lugar de un msginfo sea un:
use c:\base1
count to cantidad
? str(cantidad)


¿se puede? Gracias...!!!
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Scripts para Harbour y FWH !!!

Post by Antonio Linares »

Diego,

Claro que si ! :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
Post Reply