Como inhabilito teclas

Buenas noches.
Mi estimado Sr. Experto, nuevamente requiero de su sabiduría para esta encrucijada:
Tengo un formulario 1 que permite capturar, modificar y retirar registros (funciona de maravilla). Resulta que cuando el foco esta en el text1 o en text2, se puede presionar la tecla F3 para hacer una consulta, es decir que se activa otro formulario para este propósito.
El código esta en el evento keypress de text1 y text2. Y la instrucción es esta :
thisformset.form2.visible=.t.
thisformset.form1.visible=.f.
etc, etc, etc
Cuando se carga el form2 y por alguna razón que aun no comprendo al presionar cualquier tecla de movimiento de cursor, page down, page reg y enter hace que se vuelva activar el form1, es decir que quedan los dos formas visibles... Usted me podría hacer el favor de explicarme porque ocurre eso, sino esta en el programa, como lo evito y en donde debo poner el código... Nuevamente mil gracias.

1 respuesta

Respuesta
1
La verdad es que debería revisar el código, aunque en principio me parece que deberías utilizar el método show para activar un form de un formset.
Por lo que veo estás utilizando la propiedad visible, que no es lo mismo !
thisformset.form2.show()
Ayuda mara el método show()
Muestra un formulario y determina si es modal o no modal.
[FormSet.]Object.Show([nStyle])
Parámetros: nStyle Determina cómo se muestra el formulario. Los valores posibles son:
1)Modal. Ninguna entrada de usuario (teclado o mouse) puede ocurrir en cualquier otro formulario o en el menú hasta que el formulario modal se oculte o se libere. El programa debe ocultar o liberar el formulario modal (normalmente en respuesta a una acción de usuario) antes de que pueda producirse otra entrada de usuario. Aunque los demás formularios de la aplicación se desactivan cuando se muestra un formulario modal, no se desactivan otras aplicaciones.
2) (Predeterminado) No modal. Código que ocurre después de ejecutar el método Show a medida que se encuentra.
Si omite nStyle, el formulario se muestra en el estilo especificado por la propiedad WindowType.
Observaciones
El método Show establece la propiedad Visible de un formulario o de un conjunto de formularios como verdadero (.T.) Y convierte al formulario en el objeto activo. Si una propiedad Visible de un formulario ya está establecida como verdadero (.T.), el método Show lo convierte en el objeto activo.
Si un se activa un conjunto de formularios, el último formulario activo del conjunto también se vuelve activo. Si no hay formularios activos, el formulario que se agregó a la primera definición de la clase FormSet se hace activo.
Los formularios contenidos en un conjunto de formularios conservan su valor de la propiedad Visible. Si una propiedad Visible de un formulario se establece como falso (.F.), el método Show para el conjunto de formularios no muestra el formulario.
***
Si, definitivamente el problema se debía a un error de programación y ya lo pude solucionar, no hubo necesidad de utilizar el show.
Ahora ya tengo un programa que permite hacer lo mínimo necesario que es capturar, modificar, retirar, consultar, controlar errores y que respeta las reglas de integridad referencial.
El ultimo paso es crear un reporte y si todo sale bien esta sera la estructura para los otros pantallazos que me faltan.
Muchas gracias y saludos desde Colombia.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas