Uso del teclado con sisula fox

Hola experto en fox, espero no molestar quiero utilizar la teclas en mi proyecto y hago lo siguiente:
1.- Tengo una función en un .prg llamado funciones1
*en funciones1.prg
FUNCTION izquierda
 IF !eof() THEN
   SKIP 1
   thisform.Text1.value=cli_id
   *resto de sentecias
Endif
endfunc
*** esta funcion es para pasar al siguiente registro de mi tabla y que se vea en los    *** textbos's
2.- lo llamo desde el inicio de mi form:
ON KEY LABEl CTRL+LEFTARROW do funciones1
Y me sale al momento de ejecución:
"Thisform solo puede usarse en un método"
No entiendo a que hace referencia ese mesaje de error, ¿me podrías ayudar a acoplar eso?.
Gracias desde ya por tu atención.
Saludos
amoxto

1 respuesta

Respuesta
1
Si, lo que pasa es que el [ThisForm] es solo un "Identificador" que te sirve para hacer referencia al Formulario en el cual estés escribiendo el código. El problema aquí es que tu estas tratando de usar el [ThisForm] fuera del formulario, en tu función "Izquierda", que esta en un archivo .prg aparte.
Si quieres hacerlo de esa manera, entonces deberás usar el Nombre del formulario siempre que quieras hacer referencia al él desde fuera, como en este caso. Tu función quedaría algo así:
FUNCTION Izquierda
        IF !EOF() THEN
                SKIP 1
                NombreFormulario.Text1.Value = Cli_Id
                ...
        ENDIF
Endfunc
Toma en cuenta que "NombreFormulario" es el nombre del archivo en disco que representa a la ventana que estas usando.
Buena idea pero no funciona :( me sale un mesaje de error que dice:
"No se encuentra el objeto FORM1"
Y la funcion esta de esta manera
FUNCTION Izquierda
IF !EOF() THEN
SKIP 1
form1.Text1.Value = Cli_Id
...
ENDIF
endfunc
Que sera tal vez sabes de otra manera de utilizar las teclas por que dentro de un evento no puedo poner una función.
Gracias!
Saludos
amoxto
¿Cuál es el nombre de el archivo de tu formulario, "Form1.scx"? No lo confundas con la Propiedad [Name] del Control [Form], debes usar el nombre del archivo.
Si bien no puedes crear una Función dentro de un [Form], puedes agregar Métodos, que pueden funcionarte de igual manera. Para crearlos, selecciona un Formulario, ve al menú "Form" y luego la opción "New Method", en inglés.
Te mando un ejemplo, este es el enlace:
http://rapidshare.com/files/175053097/EjeTeclado.rar.html

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas