Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Restringir lectura código de barras a un Tedit (https://www.clubdelphi.com/foros/showthread.php?t=81100)

hogol 10-10-2012 12:07:01

Restringir lectura código de barras a un Tedit
 
Saludos a todos

Trabajo con delphi 7 y estoy haciendo un pequeño programa TPV.

He colocado en el formulario de venta un tedit para el código de barras del producto, otro para la cantidad y otro para el precio.

Estoy buscando una manera de forzar que la lectura del código de barras siempre aparezca en el edit que le toca, evitando que si por ejemplo pasan el lector cuando el focus está en la cantidad pondrá el código en dicha casilla.

No se si hay modo de distinguir una entrada que viene del lector de una entrada de teclado. Si fuera así supongo que podría poner un filtro.

También podría contar el número de carácteres que entran para intentar distinguir una cosa de otra, pero no me acaba de convencer.

En fin, os expongo el problema por si alguien tiene un modo más elegante de resolverlo.


Saludos y gracias por adelantado
Joan

Casimiro Notevi 10-10-2012 12:20:58

También puedes controlarlo por la cifra en sí, me explico, tanto los campos cantidad como precio serán siempre pequeños: cantidad>=10000 no es lógico y precio>=100000 tampoco es lógico, así que puedes controlarlo de esa manera.

Otra alternativa sería desactivar el lector de códigos de barras, pero eso ya depende de cada uno, lo mismo se puede o no.

hogol 10-10-2012 12:55:25

Hola Casimiro

Gracias por tu interés.

La solución que comentas es lo que comentaba yo de contar los carácteres y filtrar en función de la longitud.

La duda que tengo iba enfocada a si hay modo de distinguir una entrada de teclado de una entrada del lector. Si no hay modo de hacerlo supongo que acabaré haciendo lo que has sugerido.

Un saludo y gracias.
Joan

Casimiro Notevi 10-10-2012 13:07:36

Es lo que te comentaba, que dependerá del dispositivo, en principio no puedes diferenciar si la entrada es por teclado o lector, aunque si el lector está conectado a un puerto usb, por ejemplo, lo mismo sí puedes desactivar ese puerto y volver a activarlo en el campo código.

cesarsoftware 10-10-2012 15:54:19

Ahi 2 formas de hacer eso.

La primera es usar algo parecido a odette, es decir que le fuerces al lector a enviar un caracter previo al codigo (Q para cantidad, V para precio, etc)
La segunda es usar un lector por puerto serie y cuando llega algo por ese puerto pasarlo directamente al tedit que quieras.

En serio, se hace asi:)

ecfisa 10-10-2012 17:11:22

Hola hogol.

Si, existen dos formas de capturarlo como bién dice cesarsoftware.

Te pongo algunos enlaces relacionados por si pudieran servirte, buscando seguramente encontrarás más al respecto.
Saludos.

Casimiro Notevi 10-10-2012 17:16:56

Todos los días se aprende algo :)

ecfisa 10-10-2012 17:50:14

Cita:

Empezado por Casimiro Notevi (Mensaje 446822)
Todos los días se aprende algo :)

El modo que sugeriste arriba también es válido, entraría en la categoria de detección por teclado. :)

También se podría agregar algún caracter al campo en cuestión para identificarlo... y seguramente existan muchas triquiñuelas mas dando vueltas por ahí.

Saludos. :)

Edito: Y también mencionaste la captura por puerto...

hogol 17-10-2012 11:33:36

Muchas gracias por las ideas y los links que me habeis pasado.

Como dice Casimiro, siempre se aprenden cosas nuevas :)

La idea del carácter de control del lector me parece genial, pero como lo usan para otras cosas prefiero no tocar nada.

Así que finalmente creo que me inclinaré por la detección por teclado.

Un saludo y muchas gracias


La franja horaria es GMT +2. Ahora son las 03:19:02.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi