Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-06-2003
marys marys is offline
Miembro
 
Registrado: may 2003
Posts: 10
Poder: 0
marys Va por buen camino
Diferenciar entradas de datos

Hay alguna manera de diferenciar los datos tomados de scanner de codigo barra o teclado si están conectados en el mismo puerto?
Gracias
Responder Con Cita
  #2  
Antiguo 18-06-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
no lo he probado, pero supongo que el scanner no disparara los eventos onKeyPress, onKeyUp, OnKeyDown

Podrias mirar por aqui a ver si te sirve
Responder Con Cita
  #3  
Antiguo 19-06-2003
andres1569 andres1569 is offline
Miembro
 
Registrado: may 2003
Posts: 908
Poder: 21
andres1569 Va por buen camino
Hola:

Independientemente de que se conecten o no al mismo puerto, ambos generan el mismo tipo de mensaje windows, es decir como si fueran pulsaciones de teclado y así es como los recibe la aplicación (mensajes WM_KEYDOWN).

Parecerá algo engorroso pero la forma en que tengo implementado esto es mediante el evento OnMessage del TApplication (lo tengo en Delphi 4.0, si fuera un Delphi superior se utilizaría el componente ApplicationEvents). Dentro de ese código, coloco una llamada a GetTickCount cada vez que se recibe un caracter sospechoso (sólo cifras en mi caso) y comparo tiempos de recepción. Si el tiempo es inferior a 70 milésimas entre un caracter y otro, entiendo que es enviado por el scanner y anulo el mensaje para que no se propague; si no, interpreto que es el teclado (ése es el tiempo que calculo que un buen mecanógrafo no puede igualar). De esta forma, mientras van entrando caracteres en esos lapsos de tiempo voy almacenándolos y formando una cadena, hasta que llega el código de control (RETURN) o cualquier caracter retrasado en cuyo caso aborto la creación de la cadena y entiendo que es un "texto normal" (en ese caso hay que reenviarlo a la aplicación para que lo procese).

Puede sonar un poco a chapuza pero no encontré en su día mejor forma de hacerlo (si alguien lo ha hecho de otra forma ...) y funciona. Tal como lo tengo implementado, cuando se obtiene un código de barras completo, se lanza un Diálogo modal mostrándo el código para que el usuario pueda darse cuenta de que se ha leído, o por si se quiere verificar el número con el de la etiqueta, y a continuación se ejecuta la búsqueda en la Base de datos.

Si te interesa el código, dímelo, tendría que hacer algunos retoques y quitar partes que no te interesan.
__________________
Guía de Estilo
Responder Con Cita
  #4  
Antiguo 19-06-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Puedes programar tu scanner para que envié un caracter especial cuando comienza a escribir y otro cuando termine, pero no creo que esto sirva si el usuario presiona una tecla en el medio. La verdad que no se porqué quieres diferenciar una entrada de la otra, precisamente los scanners tienen esta ventaja, y hace que la programación sea indistinta, si usamos o no un scanner. Creo que la mejor forma separar totalmente el ingreso del teclado del scanner, es utilizar scanners seriales.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #5  
Antiguo 23-03-2005
ingel ingel is offline
Miembro
 
Registrado: jun 2003
Posts: 239
Poder: 21
ingel Va por buen camino
2 años despues ..mismo problema

Hola , tengo el mismo problema y recorriendo el foro encontre este mensaje ,
ahora bien tengo bastante urgencia en implementar esto ya que 'de repente'... 'el que paga' o sea el dueño no quiere que se use el teclado ;-) asi que tengo un par de dias para solucionarlo ..
si alguien sufrio lo mismo y me puede mandar algo de codigo / sugerencia / otra idea o algo que me ahorre algo de tiempo se los agradeceria infinitamente ...
Saludos y gracias
Ingel
Responder Con Cita
  #6  
Antiguo 29-03-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Cita:
Empezado por ingel
sugerencia
Utilizar Scanners que se conecten por otra vía que no sea el teclado, por ejemplo serie.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #7  
Antiguo 29-03-2005
ingel ingel is offline
Miembro
 
Registrado: jun 2003
Posts: 239
Poder: 21
ingel Va por buen camino
Seria mejor si fueran scanner serie

eso esta claro . El tema es que ya estan comprados y son ps2.
Gracias de todas formas.
Responder Con Cita
  #8  
Antiguo 29-03-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Cita:
Empezado por ingel
eso esta claro . El tema es que ya estan comprados y son ps2.
Lo tiré como sugerencia por si no se había decidido la compra!

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 15:09:16.


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
Copyright 1996-2007 Club Delphi