Aunque compré Xailer hace más de un año, he empezado a programar con él hace
unos pocos días y la verdad es que estoy muy desorientado. Vengo de un
entorno Clipper, por lo que la programación en Windows es totalmente nueva
para mi.
Por este motivo a partir de hoy comenzaré a haceros preguntas de novato.
Pido paciencia al foro.
Mi primer problema es el siguiente:
En un programa en el que manejo un fichero llamo a una función y me da el
siguiente error.
"Error BASE/1003 Variable does not exist: SELF"
METHOD BotonPrimeroClick( oSender ) CLASS cdx
SELECT PRUEBAS
GO TOP
ASIGNAR() // El error me da al utilizar esta función
RETURN Nil
STATIC FUNCTION ASIGNAR
SELECT PRUEBAS
::oCodigo:Value=CODIGO // Al ejecutar esta línea es cuando surge el
error
::oNombre:Value=NOMBRE
::oNumero:Value=NUMERO
::oFecha:Value=FECHA
RETURN Nil
El objeto oCodigo si que existe (es un TMaskEdit).
Si todo lo que hay dentro de la función ASIGNAR lo traspaso al METHOD
funciona bien, pero al utilizarlo en una función aparte me da el error
descrito anteriormente.
¿Qué hago mal?
Gracias anticipadas por vuestra ayuda.
Francisco Martínez García
Elche (Alicante)
pacoelche@hotmail.com
In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Variable no existe
- ignacio
- Site Admin
- Mensajes: 9457
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Variable no existe
Francisco,
Self se refiere al propio objeto formulario, y este como es lógico no está
en ámbito dentro de una función sino le pasas ese dato como parametro.
La solución más rápida y elegante es convertir dicha función en método de la
clase (el propio formulario). Arriba del todo en el área CLASS..END CLASS
escribes:
METHOD ASIGNAR()
Y luego simplemente cambia:
STATIC FUNCTION ASIGNAR
Por:
METHOD ASIGNAR CLASS TForm1 // (el nombre de tu formulario)
Como tu mismo te habrás dado cuenta te falta soltura en el uso de clases y
objetos. No te desesperes en menos tiempo del que crees estarás súper
habituado a usarlos. Es realmente sencillo. Y aquí estaremos para echarte
una mano.
Saludos
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Francisco Martínez García" <pacoelche@hotmail.com> escribió en el mensaje
news:[email=45cc4a9d@news.xailer.com...]45cc4a9d@news.xailer.com...[/email]
> Aunque compré Xailer hace más de un año, he empezado a programar con él
> hace unos pocos días y la verdad es que estoy muy desorientado. Vengo de
> un entorno Clipper, por lo que la programación en Windows es totalmente
> nueva para mi.
>
> Por este motivo a partir de hoy comenzaré a haceros preguntas de novato.
> Pido paciencia al foro.
>
> Mi primer problema es el siguiente:
>
> En un programa en el que manejo un fichero llamo a una función y me da el
> siguiente error.
>
> "Error BASE/1003 Variable does not exist: SELF"
>
> METHOD BotonPrimeroClick( oSender ) CLASS cdx
> SELECT PRUEBAS
> GO TOP
> ASIGNAR() // El error me da al utilizar esta función
> RETURN Nil
>
> STATIC FUNCTION ASIGNAR
> SELECT PRUEBAS
> ::oCodigo:Value=CODIGO // Al ejecutar esta línea es cuando surge el
> error
> ::oNombre:Value=NOMBRE
> ::oNumero:Value=NUMERO
> ::oFecha:Value=FECHA
> RETURN Nil
>
> El objeto oCodigo si que existe (es un TMaskEdit).
> Si todo lo que hay dentro de la función ASIGNAR lo traspaso al METHOD
> funciona bien, pero al utilizarlo en una función aparte me da el error
> descrito anteriormente.
>
> ¿Qué hago mal?
>
> Gracias anticipadas por vuestra ayuda.
>
> Francisco Martínez García
> Elche (Alicante)
> pacoelche@hotmail.com
>
>
Self se refiere al propio objeto formulario, y este como es lógico no está
en ámbito dentro de una función sino le pasas ese dato como parametro.
La solución más rápida y elegante es convertir dicha función en método de la
clase (el propio formulario). Arriba del todo en el área CLASS..END CLASS
escribes:
METHOD ASIGNAR()
Y luego simplemente cambia:
STATIC FUNCTION ASIGNAR
Por:
METHOD ASIGNAR CLASS TForm1 // (el nombre de tu formulario)
Como tu mismo te habrás dado cuenta te falta soltura en el uso de clases y
objetos. No te desesperes en menos tiempo del que crees estarás súper
habituado a usarlos. Es realmente sencillo. Y aquí estaremos para echarte
una mano.
Saludos
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Francisco Martínez García" <pacoelche@hotmail.com> escribió en el mensaje
news:[email=45cc4a9d@news.xailer.com...]45cc4a9d@news.xailer.com...[/email]
> Aunque compré Xailer hace más de un año, he empezado a programar con él
> hace unos pocos días y la verdad es que estoy muy desorientado. Vengo de
> un entorno Clipper, por lo que la programación en Windows es totalmente
> nueva para mi.
>
> Por este motivo a partir de hoy comenzaré a haceros preguntas de novato.
> Pido paciencia al foro.
>
> Mi primer problema es el siguiente:
>
> En un programa en el que manejo un fichero llamo a una función y me da el
> siguiente error.
>
> "Error BASE/1003 Variable does not exist: SELF"
>
> METHOD BotonPrimeroClick( oSender ) CLASS cdx
> SELECT PRUEBAS
> GO TOP
> ASIGNAR() // El error me da al utilizar esta función
> RETURN Nil
>
> STATIC FUNCTION ASIGNAR
> SELECT PRUEBAS
> ::oCodigo:Value=CODIGO // Al ejecutar esta línea es cuando surge el
> error
> ::oNombre:Value=NOMBRE
> ::oNumero:Value=NUMERO
> ::oFecha:Value=FECHA
> RETURN Nil
>
> El objeto oCodigo si que existe (es un TMaskEdit).
> Si todo lo que hay dentro de la función ASIGNAR lo traspaso al METHOD
> funciona bien, pero al utilizarlo en una función aparte me da el error
> descrito anteriormente.
>
> ¿Qué hago mal?
>
> Gracias anticipadas por vuestra ayuda.
>
> Francisco Martínez García
> Elche (Alicante)
> pacoelche@hotmail.com
>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
- ignacio
- Site Admin
- Mensajes: 9457
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Variable no existe
Se me ha olvidado comentarte de que realmente '::' es equivalente a Self. Es
decir:
::Dato es igual que Self:Dato
Pero sólo se puede utilizar '::' dentro de un método de clase.
Un saludo
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
news:45cc738e$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> Francisco,
>
> Self se refiere al propio objeto formulario, y este como es lógico no está
> en ámbito dentro de una función sino le pasas ese dato como parametro.
>
> La solución más rápida y elegante es convertir dicha función en método de
> la clase (el propio formulario). Arriba del todo en el área CLASS..END
> CLASS escribes:
>
> METHOD ASIGNAR()
>
> Y luego simplemente cambia:
>
> STATIC FUNCTION ASIGNAR
>
> Por:
>
> METHOD ASIGNAR CLASS TForm1 // (el nombre de tu formulario)
>
> Como tu mismo te habrás dado cuenta te falta soltura en el uso de clases y
> objetos. No te desesperes en menos tiempo del que crees estarás súper
> habituado a usarlos. Es realmente sencillo. Y aquí estaremos para echarte
> una mano.
>
> Saludos
>
>
>
> --
> Ignacio Ortiz de Zúñiga
> http://www.xailer.com
>
>
> "Francisco Martínez García" <pacoelche@hotmail.com> escribió en el mensaje
> news:[email=45cc4a9d@news.xailer.com...]45cc4a9d@news.xailer.com...[/email]
>> Aunque compré Xailer hace más de un año, he empezado a programar con él
>> hace unos pocos días y la verdad es que estoy muy desorientado. Vengo de
>> un entorno Clipper, por lo que la programación en Windows es totalmente
>> nueva para mi.
>>
>> Por este motivo a partir de hoy comenzaré a haceros preguntas de novato.
>> Pido paciencia al foro.
>>
>> Mi primer problema es el siguiente:
>>
>> En un programa en el que manejo un fichero llamo a una función y me da el
>> siguiente error.
>>
>> "Error BASE/1003 Variable does not exist: SELF"
>>
>> METHOD BotonPrimeroClick( oSender ) CLASS cdx
>> SELECT PRUEBAS
>> GO TOP
>> ASIGNAR() // El error me da al utilizar esta función
>> RETURN Nil
>>
>> STATIC FUNCTION ASIGNAR
>> SELECT PRUEBAS
>> ::oCodigo:Value=CODIGO // Al ejecutar esta línea es cuando surge el
>> error
>> ::oNombre:Value=NOMBRE
>> ::oNumero:Value=NUMERO
>> ::oFecha:Value=FECHA
>> RETURN Nil
>>
>> El objeto oCodigo si que existe (es un TMaskEdit).
>> Si todo lo que hay dentro de la función ASIGNAR lo traspaso al METHOD
>> funciona bien, pero al utilizarlo en una función aparte me da el error
>> descrito anteriormente.
>>
>> ¿Qué hago mal?
>>
>> Gracias anticipadas por vuestra ayuda.
>>
>> Francisco Martínez García
>> Elche (Alicante)
>> pacoelche@hotmail.com
>>
>>
>
>
decir:
::Dato es igual que Self:Dato
Pero sólo se puede utilizar '::' dentro de un método de clase.
Un saludo
--
Ignacio Ortiz de Zúñiga
http://www.xailer.com
"Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
news:45cc738e$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> Francisco,
>
> Self se refiere al propio objeto formulario, y este como es lógico no está
> en ámbito dentro de una función sino le pasas ese dato como parametro.
>
> La solución más rápida y elegante es convertir dicha función en método de
> la clase (el propio formulario). Arriba del todo en el área CLASS..END
> CLASS escribes:
>
> METHOD ASIGNAR()
>
> Y luego simplemente cambia:
>
> STATIC FUNCTION ASIGNAR
>
> Por:
>
> METHOD ASIGNAR CLASS TForm1 // (el nombre de tu formulario)
>
> Como tu mismo te habrás dado cuenta te falta soltura en el uso de clases y
> objetos. No te desesperes en menos tiempo del que crees estarás súper
> habituado a usarlos. Es realmente sencillo. Y aquí estaremos para echarte
> una mano.
>
> Saludos
>
>
>
> --
> Ignacio Ortiz de Zúñiga
> http://www.xailer.com
>
>
> "Francisco Martínez García" <pacoelche@hotmail.com> escribió en el mensaje
> news:[email=45cc4a9d@news.xailer.com...]45cc4a9d@news.xailer.com...[/email]
>> Aunque compré Xailer hace más de un año, he empezado a programar con él
>> hace unos pocos días y la verdad es que estoy muy desorientado. Vengo de
>> un entorno Clipper, por lo que la programación en Windows es totalmente
>> nueva para mi.
>>
>> Por este motivo a partir de hoy comenzaré a haceros preguntas de novato.
>> Pido paciencia al foro.
>>
>> Mi primer problema es el siguiente:
>>
>> En un programa en el que manejo un fichero llamo a una función y me da el
>> siguiente error.
>>
>> "Error BASE/1003 Variable does not exist: SELF"
>>
>> METHOD BotonPrimeroClick( oSender ) CLASS cdx
>> SELECT PRUEBAS
>> GO TOP
>> ASIGNAR() // El error me da al utilizar esta función
>> RETURN Nil
>>
>> STATIC FUNCTION ASIGNAR
>> SELECT PRUEBAS
>> ::oCodigo:Value=CODIGO // Al ejecutar esta línea es cuando surge el
>> error
>> ::oNombre:Value=NOMBRE
>> ::oNumero:Value=NUMERO
>> ::oFecha:Value=FECHA
>> RETURN Nil
>>
>> El objeto oCodigo si que existe (es un TMaskEdit).
>> Si todo lo que hay dentro de la función ASIGNAR lo traspaso al METHOD
>> funciona bien, pero al utilizarlo en una función aparte me da el error
>> descrito anteriormente.
>>
>> ¿Qué hago mal?
>>
>> Gracias anticipadas por vuestra ayuda.
>>
>> Francisco Martínez García
>> Elche (Alicante)
>> pacoelche@hotmail.com
>>
>>
>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com