Ayuda para: codeblock que no se evalúa.

Ayuda para: codeblock que no se evalúa.

Postby fernandomoralesdr » Fri Jul 30, 2010 7:33 am

Hola.
Lo que pongo a continuación me funciona en FW195 pero no en FW+Harbour.

GET nNumero PICTURE "99"
...
cFuncion := "Funcion" + strzero(nNumero)

eval({||cFuncion})

Lo que hago es tener una serie de funciones definidas (Funcion01(), Funcion02(), Funcion03()...) y en base al código que da el usuario se ejecuta la que corresponda.
Alguna aclaración al respecto.
Gracias y un saludo,
Fernando Morales
Las Palmas de Gran Canaria
Un saludo,
Fernando
Las Palmas de Gran Canaria
fernandomoralesdr
 
Posts: 139
Joined: Sun Apr 23, 2006 9:00 am

Re: Ayuda para: codeblock que no se evalúa.

Postby Antonio Linares » Fri Jul 30, 2010 9:17 am

Prueba asi:

cFuncion := "Funcion" + strzero(nNumero) + "()"

eval( {|| &cFuncion } )
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41462
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Ayuda para: codeblock que no se evalúa.

Postby fernandomoralesdr » Fri Jul 30, 2010 12:59 pm

Antonio, errores al compilar:

Error E0047 Code block contains both macro and declared symbol references 'NFUNCION'

Esta es la definición en el programa
REDEFINE BUTTON oBtn1 ID 991 OF oDlg ;
ACTION ( cFuncion := "Funcion" + strzero(nFuncion) + "()",;
eval({||&cFuncion}) )
Un saludo,
Fernando
Las Palmas de Gran Canaria
fernandomoralesdr
 
Posts: 139
Joined: Sun Apr 23, 2006 9:00 am

Re: Ayuda para: codeblock que no se evalúa.

Postby FranciscoA » Fri Jul 30, 2010 7:50 pm

Prueba de esta manera:

bFuncion :={|| "Funcion" + strzero(nNumero) }

eval( bFuncion )
Francisco J. Alegría P.
Chinandega, Nicaragua.

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

Re: Ayuda para: codeblock que no se evalúa.

Postby Antonio Linares » Fri Jul 30, 2010 9:08 pm

Fernando,

No declares cFuncion como "local", para que asi se declare publica por defecto, y cambia "Funcion" por "Function":

cFuncion := "Function" + strzero( nNumero ) + "()"
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41462
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 148 guests