Page 1 of 1

Warning de xHarbour con Warning Level = 2

PostPosted: Thu Oct 04, 2012 11:33 am
by softruz
Muy buenas foro, tengo un warning que no se como solucionarlo, este es:

Warninig W0004: Codeblock parameter: 'SELF' declared but not used in function: 'ONINSERTING_PROVEEDORES'

¿Sabeis como puedo solucionarlo?

Un Saludo.

Re: Warning de xHarbour con Warning Level = 2

PostPosted: Thu Oct 04, 2012 1:23 pm
by karinha
cuando esto sucede?
Cual la función que se está tratando de compilar?
Cual las banderas(flags) de compilación? Intente con /M/N

Saludos.

Re: Warning de xHarbour con Warning Level = 2

PostPosted: Thu Oct 04, 2012 1:45 pm
by Carlos Mora
Debe ser porque debes tener algun boton o control que dice ACTION (ONINSERTING_PROVEEDORES(...)...) , lo que al preprocesar generará un codeblock del tipo {|Self| ONINSERTING_PROVEEDORES(...)...) }
El warning es para que adviertas que el codeblock recibe un parámetro que que el código dentro del codeblock no usa.

Prueba a cambiar a ACTION ( HB_SYMBOL_UNUSED( Self ), ONINSERTING_PROVEEDORES(...)...) . Esto de unused es para Harbour, pero supongo que tambien existe en xHarbour.
Puedes ignorar la advertencia de todas maneras, no implica ningún riesgo.

Por cierto, aunque un poco OT, usar Self, una palabra reservada del lenguaje en un comando es una cosa un poco reñida, no? Impide al menos que se pueda usar el comando dentro de un método, porque Self sería ambíguo. Alguna vez le planteé a Antonio renombrar ese parámetro, pero por cuestiones de compatibilidad hacia atrás Antonio prefería no cambiarlo. Yo apuesto que no deben haber muchos usando el parámetro Self en los codeblocks ;)

Un saludo

Re: Warning de xHarbour con Warning Level = 2

PostPosted: Thu Oct 04, 2012 3:04 pm
by softruz
Muchas gracias voy a probar.

Re: Warning de xHarbour con Warning Level = 2

PostPosted: Thu Oct 04, 2012 3:40 pm
by softruz
He probado con /m/n y nada, ¿Sabeis si hay alguna forma de quitar dichos mensajes ?

Un Saludo.

Re: Warning de xHarbour con Warning Level = 2

PostPosted: Thu Oct 04, 2012 4:01 pm
by karinha

Re: Warning de xHarbour con Warning Level = 2

PostPosted: Fri Oct 05, 2012 8:39 am
by softruz
Karinha, por ejemplo me da dicho Warning en todos los Dialogos con "on init"
activate dialog oDlg center valid bValid on init aoGets[1]:setfocus()

El Warning sería en este caso:

Warninig W0004: Codeblock parameter: 'SELF' declared but not used in function: 'TEMPCF''

Entiendo que este Warning es por que al preprocesar el dialogo crea en famoso CodeBlock oDlg:bInit:={|self| ....} y no se utiliza lo que quiero es seguir utilizando el WarningLevel =3 pero quitar de alguna forma dicho Warning.

Gracias por vuestra ayuda.

Re: Warning de xHarbour con Warning Level = 2

PostPosted: Fri Oct 05, 2012 9:07 am
by Carlos Mora
No quedo claro si probaste el HB_SYMBOL_UNUSED.

prueba hacer algo con el Self, será ejecutar código innecesario, peeeero....

ACTIVATE DIALOG ..... ON INIT ( aGets[1]:SetFocus(), Self )