Página 1 de 1

Manejo de macro sustitucion

Publicado: Mar May 06, 2008 5:20 pm
por RRamonell
Hola todos.
Después de pasarme un buen rato buscando la forma de que la macro
sustitución de las lí­neas siguientes me den el resultado que necesito
(ya hice varias combinaciones y todas me dan error, con y sin
codeblocks), les ruego su ayuda en orientarme sobre como puedo hacer
esto evitando tener que hacerlo a pie (generando muchas lí­neas de código).
301 LOCAL k, v
302
303 FOR k := 1 TO Len( aFields )
304 v := AllTrim( Str( k ) )
305 Eval( { ¦v¦ &( "::oLabelBuddy" + v + ":End()" ) }, v )
306 Eval( { ¦v¦ &( "::oTDBMaskEdit" + v + ":End()" ) }, v )
307 Eval( { ¦v¦ &( "::oLabel" + v + ":End()" )
}, v )
308 NEXT
Esta alternativa me arroja el siguiente error:
FORMULA:FORMINITIALIZE(305)
Error BASE/1004 Class: 'ARRAY' has no exported method: EVAL
Argumentos: ( [ 1] = Tipo: A Valor: [ 2] = Tipo: C Valor: 1)
----------------------- Información detallada del error
-----------------------
Subsistema: BASE
Código de error: 1004
Estado: .F.
Descripción: Class: 'ARRAY' has no exported method
Operación: EVAL
Argumentos: [ 1] = Tipo: A Valor: [ 2] = Tipo: C Valor: 1
Fichero:
Código error SO: 0
Pila de llamadas:
FORMULA:FORMINITIALIZE (305)
FORMULA:ONINITIALIZE (0)
FORMULA:NEW (183)
Gracias por la ayuda que me puedan brindar.
Rene Ramon Elly

Manejo de macro sustitucion

Publicado: Mié May 07, 2008 9:18 am
por Carlos Mora
Rene,
> 305 Eval( { ¦v¦ &( "::oLabelBuddy" + v + ":End()" ) }, v )
El problema está probablemente en los ::. Eso es traducido a Self en
tiempo de compilación si no me equivoco, no sé si la macro es capaz de
'masticarlo', y aún así­, si self no es una private o public no te va a
compilar porque dentro de Eval() no existe Self.
Saludos

Manejo de macro sustitucion

Publicado: Jue May 08, 2008 11:23 pm
por RRamonell
Carlos Mora escribió:
> Rene,
>> 305 Eval( { ¦v¦ &( "::oLabelBuddy" + v + ":End()" ) }, v )
>
> El problema está probablemente en los ::. Eso es traducido a Self en
> tiempo de compilación si no me equivoco, no sé si la macro es capaz de
> 'masticarlo', y aún así­, si self no es una private o public no te va a
> compilar porque dentro de Eval() no existe Self.
>
> Saludos
Gracias Carlos, voy a buscar otra alternativa.