Problea con CodeBlock

Problea con CodeBlock

Postby antolin » Tue Oct 29, 2013 12:31 pm

Hola foreros, tengo un problema curioso.

Si hago:
Code: Select all  Expand view
DEFINE DIALOG [b]oDlg[/b] ......
   ...
   bBlock := { || MSGALERT(oDlg:ClassName() }

   EVAL(bBlock)   // FUNCIONA
   ...

Pero si hago:
Code: Select all  Expand view
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...
antolin
 
Posts: 492
Joined: Thu May 10, 2007 8:30 pm
Location: Sevilla

Re: Problea con CodeBlock

Postby Carles » Tue Oct 29, 2013 1:46 pm

Antolin

Prueba
Code: Select all  Expand view
cDat := "{|o| Msgalert( o:ClassName() ) }"

bBloc := &( cDat )

eval( bBloc, oDlg )
Salutacions, saludos, regards

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

UT Page -> https://carles9000.github.io/
Forum UT -> https://discord.gg/bq8a9yGMWh
Skype -> https://join.skype.com/cnzQg3Kr1dnk
User avatar
Carles
 
Posts: 1104
Joined: Fri Feb 10, 2006 2:34 pm
Location: Barcelona

Re: Problea con CodeBlock

Postby Lautaro » Tue Oct 29, 2013 3:33 pm

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.
User avatar
Lautaro
 
Posts: 322
Joined: Fri Oct 07, 2005 2:44 pm
Location: Osorno, Chile

Re: Problea con CodeBlock

Postby hmpaquito » Tue Oct 29, 2013 3:56 pm

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

Re: Problea con CodeBlock

Postby hmpaquito » Tue Oct 29, 2013 6:51 pm

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

Re: Problea con CodeBlock

Postby Lautaro » Tue Oct 29, 2013 8:28 pm

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  Expand view

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

 bbloque := &( cbloque )

 


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

Saludos,

Lautaro
User avatar
Lautaro
 
Posts: 322
Joined: Fri Oct 07, 2005 2:44 pm
Location: Osorno, Chile

Re: Problema con CodeBlock

Postby antolin » Wed Oct 30, 2013 7:37 am

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...
antolin
 
Posts: 492
Joined: Thu May 10, 2007 8:30 pm
Location: Sevilla

Re: Problea con CodeBlock

Postby hmpaquito » Wed Oct 30, 2013 8:44 am

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

Re: Problema con CodeBlock

Postby hmpaquito » Wed Oct 30, 2013 8:58 am

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

Re: Problea con CodeBlock

Postby antolin » Wed Oct 30, 2013 9:56 am

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...
antolin
 
Posts: 492
Joined: Thu May 10, 2007 8:30 pm
Location: Sevilla


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 62 guests