Duda sobre captura de datos con lector de tarjetas

Si me podrían orientar soy un novato en la programación con Delphi pero lo estoy intentando, estoy tratando de hacer un programa con un lector de tarjetas magnéticas, en el que valida un numero de empleado que se graba en una tarjeta de banda magnética, mi pregunta es como puedo hacer para atrapar los datos que están en la tarjeta sin la utilización de un botón de captura, se que al utilizar un control edit en cuanto deslizo la tarjeta me aparece en el control el contenido de la tarjeta, he tratado con el evento onchange del edit pero no me permite evaluar el contenido del edit ya que en cuanto detecta el cambio inmediatamente solo me muestra un carácter y el resto de la cadena no aparece y cuando trato de usar una condicionante para ver el tamaño de la cadena no me lo permite la condicionante nunca se cumple, básicamente lo que intento que haga es que de lectura al numero y me de un mensaje de si existe o no existe el numero y desplegar el mensaje, también poder realizar la captura por medio del teclado en dado caso de no tener tarjeta, poder teclear el numero y me lo pueda evaluar de igual manera, alguna idea de como podría solucionar este problemita.

1 respuesta

Respuesta
1
A parte del onchange, ¿qué otros eventos lanza la tarjeta magnética? (Nunca he trabajado con ellas, pero por lo que comentas, es como un lector de código de barras, que funciona como un teclado)
¿Has probado con hacer el control en el onkeyup?
Hola, solamente lo he intentado con el onchange, como podría utilizar el el evento onkeyup, y pues si el funcionamiento es como el de un código de barras me imagino, alguna idea, como dicen ya me cicle con este detalle, gracias por responder y tu ayuda.
El onkeyup debería "saltar" cada vez que un dígito entre en el editbox...
Si la condición es por ejemplo, que en el edit haya un cierto numero de caracteres,podrias poner un if length(edit.text) = n then ... y que haga alli lo que tenga que hacer...
Hola, ya intente con el evento onkeyup pero no me funciono coloque la condicionante
procedure TForm2.Edit1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
if length(edit1.Text) > 5 then
showmessage('paso es mayor de 5')
else showmessage('fallo');
end;
Para probar pero cada vez que deslizo la tarjeta por el lector en el cuadro del edit solo me aparece el primer carácter y de ahí me despliega el mensaje del else que es "Fallo" no deja continuar con la cadena de caracteres, seguiré investigando, pero como que no hay mucho sobre el tema, te agradezco la ayuda.
¿Solo aparece el primer carácter en el edit? ¿Y no será un problema de drivers?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas