FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Problemas para capturar valor de OnKeyPress
Espero me puedan colaborar con el siguiente inconveniente. Trato simular el ReadKey de Pascal con el Evento OnKeyPress de un Edit. Pero la informacion no me pasa a la tabla final.
Presento el codigo para tratar de ser mas especifico con el problema.
La idea es que mientras no llegue a 160, pida el valor. A la tabla TTemporal ingresa el numero de la pregunta pero nunca ingresa la respuesta. Podrian darme una ayuda. Muchas Gracias. Última edición por dec fecha: 05-04-2006 a las 02:58:46. |
#2
|
||||
|
||||
La variable "i" no tiene asignada un valor, quizás sea una variable global, pero no puedo adivinarlo si tiene un valor correcto (aunque dices que si).
Desconozco que es "Resp", pero antes del StrScan haces un Resp.Clear, ¿no borra eso el contenido de Resp.Text? Sugerencia: La condición de strScan se podía haber abreviado como:
Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#3
|
|||
|
|||
Lepe. Muchas gracias por la colaboracion. Aclaro un poco mas la situacion. i es un contador de preguntas que se incrementa hasta llegar a 160 porque el total de preguntas del formulario es 159, la cual es inicializada en 1 cada vez que se activa el Formulario. Resp es un Edit donde se ingresa la letra que marcó la persona que lleno el formulario.
Me alargo un poquito para ser mas especifico. La aplicacion busca ingresar y validar las respuestas dadas por n numero de personas en un formulario, donde las preguntas son de seleccion multiple, agrupacion y falso y verdadero. Respecto a la idea de abreviar. Es cierto pero busco que solo se pueda ingresar una tecla por vez, simulando el ReadKey de Pascal. La idea del Clear es limpiar el Edit para el siguiente ingreso (algo que por cierto no hace). Después de ingresar el dato, busco que se cambie la posicion de la tabla y el proximo ingreso llegue al registro siguiente. Pero nunca me recibe el valor dado en el Edit Resp. |
#4
|
||||
|
||||
Tienes un Resp.Clear después del POST que supongo es el que quieres para limpiar el edit para la próxima pregunta; pero tienes otro Resp.Clear antes del Append y es al que Lepe se refiere.
Y haz caso a Lepe y abrevia ese condicional. Al evento OnKeyPress sólo puede llegarle un caracter a la vez. // Saludos |
#5
|
||||
|
||||
Oki doki.
Al Edit le pones MaxLength a 1 y listo, solo permites una letra. Tambien le pones Charcase := ecUppercase y solo escribe en mayúsculas. Ya puedes usar el StrScan como te comenté. El no responder a Resp.Clear, es precisamente porque lo haces dentro del evento KeyPress. Ten en cuenta que en ese evento puedes modificar por código la tecla pulsada, por tanto, aún no ha sido procesada, y por tanto no está en Resp.Text, solo cuando termine el evento, es cuando el carácter estará en Resp.Text (el carácter que pulsó el usuario, o el que tú has modificado por código). La solución es bien fácil, en lugar de usar Resp.Text, usamos el parámetro Key. Obviamente queda hacer un Resp.Clear, pero como dije, no puede hacerse en este evento. Podría añadir Key := #0 despues de hacer el i:=i+1, pero el usuario no vería la tecla en el edit, daría la impresión de que no la acepta. Es mejor buscar otro lugar donde Hacer el Resp.Clear. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. Última edición por Lepe fecha: 05-04-2006 a las 18:24:56. |
#6
|
|||
|
|||
Muchas Gracias por la colaboracion. Hay algunos detallitos menores que me fallan pero el resto funciona de lujo.
Quisiera hacer una pregunta extra. La Tabla Temporal me gustaria dejarla vacia al finalizar el ingreso de datos del respectivo usuario. Que instruccion le debo dar y en que momento. He estado utilizando las instrucciones Empty y DeleteTable en el OnClose y me da error. |
#7
|
||||
|
||||
Ejemplo de la ayuda de delphi:
Las instrucciones con ** las tendrás especificadas en tiempo de diseño, por tanto, solo tienes que cerrar la tabla y vaciarla, pero con el TDatabase y Session abiertos.
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Problemas al capturar teclas | Dexter182 | Varios | 2 | 09-10-2005 22:36:12 |
Problema para capturar Errores | carlos gonzalez | Varios | 9 | 21-06-2005 16:31:48 |
Problema para capturar Errores | carlos gonzalez | DB2 | 2 | 17-06-2005 17:43:05 |
capturar teclas mediante eveto onkeypress | gulder | C++ Builder | 2 | 04-05-2005 21:51:13 |
Control para capturar la hora | JulioGO | Firebird e Interbase | 5 | 09-09-2004 19:42:22 |
|