Problea con CodeBlock

Post Reply
antolin
Posts: 475
Joined: Thu May 10, 2007 8:30 pm
Location: Sevilla

Problea con CodeBlock

Post by antolin »

Hola foreros, tengo un problema curioso.

Si hago:

Code: Select all

DEFINE DIALOG [b]oDlg[/b] ......
   ...
   bBlock := { || MSGALERT(oDlg:ClassName() }

   EVAL(bBlock)   // FUNCIONA
   ...
Pero si hago:

Code: Select all

DEFINE DIALOG [b]oDlg[/b] ......
   ...
   cDat  := "{ || MSGALERT(oDlg:ClassName() }"
   bBlock := &( cDat )
   EVAL(bBlock)   // NO FUNCIONA
   ...
El codeblock se evalua, pero me dice que no existe la variable oDlg.
¿Qué estoy haciendo mal?
Gracias de antemano

Un saludo.
Peaaaaaso de foro...
User avatar
Carles
Posts: 937
Joined: Fri Feb 10, 2006 2:34 pm
Location: Barcelona
Contact:

Re: Problea con CodeBlock

Post by Carles »

Antolin

Prueba

Code: Select all

cDat := "{|o| Msgalert( o:ClassName() ) }"

bBloc := &( cDat )

eval( bBloc, oDlg )
Salutacions, saludos, regards

"...programar es fácil, hacer programas es difícil..."

https://modharbour.app
https://modharbour.app/compass
https://forum.modharbour.app
User avatar
Lautaro
Posts: 322
Joined: Fri Oct 07, 2005 2:44 pm
Location: Osorno, Chile
Contact:

Re: Problea con CodeBlock

Post by Lautaro »

Antolin,

Disculpa, lo que escribi estaba totalmente fuera de contexto, tu problema es por el scope de las variables, no puedes usar una variable local para componer un bloque de codigo mediante macros.

Atte.,

Lautaro
Last edited by Lautaro on Tue Oct 29, 2013 6:12 pm, edited 1 time in total.
hmpaquito
Posts: 1200
Joined: Thu Oct 30, 2008 2:37 pm

Re: Problea con CodeBlock

Post by hmpaquito »

:?: :?: :?:
Last edited by hmpaquito on Wed Oct 30, 2013 10:19 am, edited 2 times in total.
hmpaquito
Posts: 1200
Joined: Thu Oct 30, 2008 2:37 pm

Re: Problea con CodeBlock

Post by hmpaquito »

:?: :?: :?:
Last edited by hmpaquito on Wed Oct 30, 2013 10:18 am, edited 1 time in total.
User avatar
Lautaro
Posts: 322
Joined: Fri Oct 07, 2005 2:44 pm
Location: Osorno, Chile
Contact:

Re: Problea con CodeBlock

Post by Lautaro »

HmPaquito,

Me senti tocado por tu aclaracion, la que imagino con buena intencion :) lo que agradezco agradezco y pido disculpas por mi aparente falta de cortesia ( si al releer el como edite el mensaje , en realidad se ve muy descortes ), lo que no fue mi intencion :oops:

Ahora en lo tecnico, el scope tiene mucho que ver, ya que es la visibilidad de las variables lo que afecta la macrocompilacion, ya que las variables locales NO SON VISIBLES para las MACROS, como es el caso de las construcciones :

Code: Select all

...
local xvar1
...
...
 cbloque := "{|| msgalert(xvar1,'contenido variable xvar1'}"

 bbloque := &( cbloque )

 
Si estoy equivocado, por favor corrijanme :!: :!: :!:

Saludos,

Lautaro
antolin
Posts: 475
Joined: Thu May 10, 2007 8:30 pm
Location: Sevilla

Re: Problema con CodeBlock

Post by antolin »

Gracias por vuestra prompta respuesta.

Algo tengo que estar haciendo mal porque sigue sin funcionarme. Además, para empezar, no puedo inicializar la variable, desde fuera de la función, con PRIVATE, me dice: " Statement not allowed outside of procedure o function ". Y si la inicializo dentro de la función con PRIVATE, no me la ve, como si no existiera " Ambiguous reference 'oDlg' ".
Peaaaaaso de foro...
hmpaquito
Posts: 1200
Joined: Thu Oct 30, 2008 2:37 pm

Re: Problea con CodeBlock

Post by hmpaquito »

:?: :?: :?:
Last edited by hmpaquito on Wed Oct 30, 2013 10:19 am, edited 1 time in total.
hmpaquito
Posts: 1200
Joined: Thu Oct 30, 2008 2:37 pm

Re: Problema con CodeBlock

Post by hmpaquito »

:?: :?: :?:
Last edited by hmpaquito on Wed Oct 30, 2013 10:19 am, edited 1 time in total.
antolin
Posts: 475
Joined: Thu May 10, 2007 8:30 pm
Location: Sevilla

Re: Problea con CodeBlock

Post by antolin »

Muchas gracias a todos.

Ya he solucionado mi problema con otra estructuración y ya no necesito ese codeblock. Así que no me voy a calentar la cabeza y la próxima vez que me surja este tema ya me dedicaré más de lleno a ello. La verdad es que llevo muchos años utilizando codeblocks sin ningún tipo de problemas y no creo que éste vuelva a salir hasta dentro de otros muchos años.

De todas maneras muchas gracias por vuestra dedicación.

Un saludo.
Peaaaaaso de foro...
Post Reply