FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Como reconocer el origen de la entrada de texto en un TEdit
Hola foro...
Tengo una duda con la cual me he roto la cabeza toda la mañana. ¿Como reconocer el origen de la entrada de texto en un TEdit? En la empresa, manejamos unos fichos para establecer turnos de atención a los vehiculos... mientras los vehiculos están dentro del parqueadero, ellos tienen un unico ficho con el cual deben realizar todas las operaciones. En el momento de llegar a una ventanilla, los conductores presentan el ficho para validar su ingreso y asi proceder con el pago (por ej). La duda nace pq en el cuadro de dialogo que he hecho para reconocer el ficho o carnet he colocado un TEdit oculto (detras de un panel) con focus desde que se muestra el dialog. Cuando pasan el código por el laser, el lector USB envia los datos al TEdit para procesarlo... todo trabaja OK. PERO... si en lugar de pasar el códígo de barras por el laser, cualquier usuario ESCRIBE desde el teclado el código del ficho o carnet, al presionar enter... realizará el mismo proceso que con el lector laser. Esto es un problema de seguridad que los usuarios todavia no saben (ojala y no entren al club jajajaja)... si supieran se volarian la verificación de ficho (algunos conductores lo dejan en el carro, se lo prestan a otro... en fin... eso es parte de la seguridad que queremos implementar)... por eso la pregunta... ¿Como reconocer el origen de la entrada de texto en un TEdit? Si alguien me puede ayudar... pls.
__________________
Buena caza y buen remar... http://mivaler.blogspot.com |
#2
|
||||
|
||||
Si el lector del cuál hablas funciona como emulador de teclado, dudo que puedas identificar la procedencia de la entrada. Una opción, que he utilizado alguna vez, es utilizar lectores que se comuniquen por el puerto serie, entonces tu manejas la entrada y la tienes bien identificada.
Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#3
|
||||
|
||||
Hasta donde tengo entendido, estos periféricos funcionan emulando el tecleo físico de un usuario procedido por un ENTER. Dependiendo de cada marca y cada modelo, esto puede variar, pues algunos tienen sus propias APIs que puedes usar para evitar que tengas que trabajar a cómo tú lo estás haciendo actualmente.
Tengo como un flash de que en la API de Microsoft Windows existen rutinas que te ayudan a determinar si el "tecleo" fue virtual (Usado por ciertos dispositivos y llamadas a la API) o real (Hecho físicamente por el usuario). Por otro lado, si el periférico es USB es muy seguro que éste envie los "Key Strokes" al sistema directamente, por lo que Windows siempre los interpretará como tecleos reales. Saludos. |
#4
|
||||
|
||||
Los dispositivos que uso emulan los keystrokes del teclado y envian a windows (no tienen api propia). Estos keystrokes son como estar tecleando directamente.
he intentado todo el dia con codigos y artilugios de aqui y de allá... por eso esperaba encontrar una solución. Correción: Todavia... ESPERO... Que Dios ilumine a alguno de nuestros sabios
__________________
Buena caza y buen remar... http://mivaler.blogspot.com |
#5
|
||||
|
||||
Una Idea
Has intentado a usar cualquiera de los evento (OnKeyPress ó OnKeyUp ó OnKeyown) del Edit en cuestion.Digo esto ya que los eventos del edit son solo implementados en el Lenguaje Delphi, si tu lector de codigo de barra, esta usando solo APIs para escribir en el Edit, los eventos anteriores nose van a ejecutar(en teoria ),caso contrario, no te servira..
Podrias hacer una simple prueba, coloca el siguiente codigo en el evento OnKeyPress del Edit; Espero se haya entendido la idea. Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Última edición por rgstuamigo fecha: 19-01-2010 a las 14:36:20. |
#6
|
||||
|
||||
Puedes probar si el lector envía los caracteres uno a uno o si lo envía todos al mismo tiempo ya que si es así puedes hacer que después de cada tecleo se borren así si presionan más de una vez nunca aran el código con dichos eventods
__________________
BS Picture es un visor de imágenes pequeño y útil que incluye todas las características necesarias |
#7
|
||||
|
||||
Que tal,
Pues a lo mejor pueda parecer algo burdo, pero debe de funcionar, mide el tiempo entre el primer "teclazo" y el ultimo, estoy seguro que por muy rapido que uno ingrese la clave, no lo hara mas rapido que el lector laser. Puedes poner un parametro de "velocidad" de ingreso, si la diferencia entre el primero y el ultimo catacter de la clave es menor que este, pues casi seguro que fue via el lector laser, de otra forma, lo hizo un simple mortal . Saludos.
__________________
Ya tengo Firma! |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Alinear Texto en un TEdit | luxus | Varios | 1 | 19-07-2006 18:59:55 |
Limitar entrada de texto en un DBGrid | Er_Manué | OOP | 2 | 13-06-2006 17:48:21 |
Sockets-Reconocer una cadena de texto. | DarkByte | Internet | 14 | 14-06-2004 22:37:29 |
Alienacion de texto en TEdit | PTW | Varios | 2 | 19-05-2004 16:18:09 |
Alinear texto de Tedit | cisterpe | OOP | 2 | 11-09-2003 13:00:36 |
|