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 13-03-2008
Flecha Flecha is offline
Miembro
 
Registrado: nov 2006
Posts: 59
Poder: 18
Flecha Va por buen camino
Question Trabajar con Scanner de código de barras

Hola a todos.

Tengo varias preguntas, todas algo complejas, y todas en torno a trabajar con Scanners de códigos de barras.

Hasta ahora, para leer el código de barras me ha bastado con poner en el form un TEdit (por ejemplo), dejar en él el foco, y entonces leer el código de barras con el Scanner. El código leído se refleja en el TEdit como si lo hubiese tecleado. Pero necesito leer el código de barras prescindiendo de TEdit y similares. Es decir: Necesito capturar la entrada del dato desde el Scanner sin utilizar el truco del foco sobre un TEdit o similar. ¿Puede hacerse algo similar al trabajo con sockets y el TServerSocket? Eso me vendría de perlas.

Los Scanners (porque son varios) con los que estoy, se conectan todos al PC por puerto USB:
  • ¿Hay alguna manera de detectar el momento en el que alguien conecta el Scanner al PC? ¿Puedo saber exactamente a qué puerto del PC se ha conectado para capturarlo e intentar lo de la captura de entrada de datos?
  • Suponiendo que puedo detectar el momento en el que algo se conecta al PC por puerto USB, ¿puedo saber si lo que se ha conectado al puerto USB es un Scanner de código de barras u otro dispositivo distinto?
  • Y para seguir con el hilo de preguntas, ¿se puede detectar el momento en el que alguien desconecta el dispositivo del puerto USB?
  • Si alguien conectara dos Scanneres de códigos de barras al PC ¿hay algún modo de diferenciar la entrada de datos de cada uno de ellos?
Y por último. Todas las preguntas son sobre Scanners que se conectan al PC por puerto USB. ¿Habría alguna diferencia respecto a Scanneres que se conecten al PC por otro tipo de puerto (por ejemplo un puerto serie)? Lo pregunto por si me tocara modificar el programa en el futuro utilizando ese otro tipo de Scanneres, o por si simplemente el cable de conexión se estropeara y tubieramos que cambiarlo por otro que se conecte al serie en vez de al USB.

Muchas gracias de antemano.
Responder Con Cita
  #2  
Antiguo 14-03-2008
Neeruu Neeruu is offline
Miembro
 
Registrado: oct 2007
Posts: 485
Poder: 17
Neeruu Va por buen camino
Cool Trabajar con Scaneres de codigo de barra

Hola como estas??

Mira he trabajdo con Scaneres pero por curiosidad por que no quieres capturar en un Tedit lo que trae el Scaner..

Tambien podrias hacer que el formulario lo capte poniendo la propiedad KeyPreview en true.

Por lo que tengo entendido el Lector simula ser un teclado para la PC y asi poder escribir los datos por ejemploi en un Tedit, porque si prestas atendion lo va escribiendo de a uno a cada nro

por ejemplo

si leo este codigo 1000 2154 7846 4587

No aparecera todo el codigo escrito de una sola vez

sino que ira agregando de a una como si lo escribieras desde el teclado
por lo tanto si no quieres ocupar un Tedit podrias capturar las entradas que vienen desde el teclado(esto no lo proble pero podria andar)

Saluda Atte Neeruu
Responder Con Cita
  #3  
Antiguo 14-03-2008
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Tendrías que hacer un manejador para los eventos del teclado como OnKeyPress o OnkeyDown para procesar los "teclazos" que manda el escaner. Si lo que no quieres es que se muestre el Tedit.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #4  
Antiguo 17-03-2008
Flecha Flecha is offline
Miembro
 
Registrado: nov 2006
Posts: 59
Poder: 18
Flecha Va por buen camino
Hola.
Ante todo muchas gracias por contestar.

Quiero prescindir del TEdit y similares porque el código leido por el scanner no debe aparecer visible en pantalla. Sin embargo, para que un TEdit, o similar, recoja lo leído por el scanner, dicho objeto debe estar:
- con Visible a True,
- con Enabled a True,
- y con el foco de la aplicación en dicho objeto

Una primera solución podría ser poner el TEdit por detrás ("Send to Back") de otros objetos (por ejemplo, un TPanel), y así no sería visible para el ojo humano. Pero es muy posible que el usuario esté tocando en otras partes del TForm haciendo que el foco vaya de un lado para el otro y que nunca esté donde yo necesito que esté (en el TEdit que recoge lo leido por el Scanner). Y además en el TForm hay otros TEdit y TDBEdit con otro tipo de información. Tampoco combiene que por error se pegue en uno de esos objetos la información leida por el scanner.

El usuario dispone de teclado y ratón para "jugar" en el TForm todo lo que quiera. Por eso necesitaría distinguir la entrada del Scanner de la entrada del teclado.

Todo control de eventos que ponga (KeyPreview:=True, o configurar OnKeyPress y/o OnKeyDown) también saltará cuando el usuario toque el teclado, y no tendré manera de distinguirlo de la entrada por Scanner.

La solución ideal creo que sería capturar la entrada del Scanner a nivel de puerto.

¿Alguna idea de cómo hacerlo?

Muchas gracias de nuevo.
Responder Con Cita
  #5  
Antiguo 17-03-2008
Avatar de Fenareth
[Fenareth] Fenareth is offline
Miembro Premium
 
Registrado: oct 2007
Ubicación: Guadalajara, Jalisco, México
Posts: 494
Poder: 17
Fenareth Va por buen camino
Hola, tal vez sea una solución un poco tonta pero no has pensado en poner un caracter que omita las letras y/o números que lea el scanner ???, algo así como cuando pones un Edit para escribir contraseñas...

Sé que no es lo que pides pero me pareció una idea aceptable si lo que quieres es que lo que lea el scanner no se "vea" por el usuario... podrían solo ver asteriscos o puntos o cualquier otra cosa...

Saludos,
Responder Con Cita
  #6  
Antiguo 17-03-2008
Neeruu Neeruu is offline
Miembro
 
Registrado: oct 2007
Posts: 485
Poder: 17
Neeruu Va por buen camino
Cool Trabajar con Scaner de codigo de barra

Hola lo que podrias hacer es asignar una tecla especial para que ingrese el codigo de barra, por ejemplo que presione la tecla 'F1' y que se abra una ventanita con un TEdit y si quiere cancelar la lo ingresado que presione escape para cerrar la ventana!!!!!


En caso de que ingrese el codigo de barra, programas el caracter de fin de intruccion y lo usas para saber que termino de escribir el codigo de barra, y de ahi ya tienes tu codigo y puedes hacer lo que quieras!!!!

No se!!! esa podria ser una solucion!!! tambien nose pero creo que con tienen caracteres de fin de intruccion( o sea que indican que termino el codigo) tambien tienen caracteres de inicio, asi podrias asignar un caracteres medio raro y poder detectarlo despues... de esto no estoy seguro y no tengo ningun manual a mano...

Si decides algo avisa... por curiosidad haber como quedo

Saluda Atte Neeruu
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Scanner de Codigo de Barras no lee Chogo Varios 4 17-11-2012 17:25:53
uso de codigo de barras alfil123 Varios 15 28-01-2008 04:37:42
Codigo De Barras Ean-128 marocaforo Impresión 2 12-12-2006 00:10:47
Codigo Barras novatix Impresión 1 17-02-2004 12:43:25
Codigo de Barras miguelb Varios 2 21-06-2003 00:18:01


La franja horaria es GMT +2. Ahora son las 10:08:48.


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