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 16-02-2007
cureham cureham is offline
Registrado
 
Registrado: ago 2006
Posts: 6
Poder: 0
cureham Va por buen camino
Evitar el uso del teclado en un componente TEdit

Que tal, antes q nada felicidades por esta pagina me has servido muchisimo, ahora con una gran duda que aun no se como resolverla, el problema es este... Tengo un lecotr de codigo de barras y un teclado conectados a la misma pc, en mi aplicacion tengo una ventana de login y necesito q el password lo lea de la lectora y q no permita introducir numeros desde el teclado, es esto posible????
Responder Con Cita
  #2  
Antiguo 16-02-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Podrias generar el codigo de barras con algun componente generador de codigo de barras y luego imprimirlo con paquetes como por ejemplo el FastReport, FreeReport o algun complemento para el QuickReport que haga dicha labor.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #3  
Antiguo 16-02-2007
cureham cureham is offline
Registrado
 
Registrado: ago 2006
Posts: 6
Poder: 0
cureham Va por buen camino
perdon creo q no me expliqe bien, el codigo de barras ya viene impreso en las tarjetas de los empleados, lo que yo necesito es leer ese codigo desde la lectora de codigos y q no lo puedan teclear directamente
Responder Con Cita
  #4  
Antiguo 16-02-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
Se me ocurre que configures tu lector para que en la misma cadena pero antes de enviar el código envié un carácter especial que sea reconocido por tu aplicación y de esa manera entienda que esa entrada viene del lector y otro carácter al final para que la aplicación cierre de nuevo cualquier posibilidad de escribir otra cosa, y así si alguien trata de hacerlo desde el teclado pues no sabrá cual es ese carácter especial y por lo tanto tu aplicación no dejara escribir nada.

Nota: Las configuraciones de estos lectores vienen por lo general en un manual de usuario con el dispositivo.

No se si me hice entender pero espero que si y que ademas te sirva de algo.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #5  
Antiguo 16-02-2007
cureham cureham is offline
Registrado
 
Registrado: ago 2006
Posts: 6
Poder: 0
cureham Va por buen camino
vale me latio mucho tu idea, dejame busco esos manuales de los que hablas, muchas gracias por el tip!!
Responder Con Cita
  #6  
Antiguo 17-02-2007
Avatar de ArdiIIa
[ArdiIIa] ArdiIIa is offline
Miembro Premium
 
Registrado: nov 2003
Ubicación: Valencia city
Posts: 1.481
Poder: 22
ArdiIIa Va por buen camino
Te pongo un ejemplo, de hecho, no hace falta ningún edit para procesar los mensajes de teclado, pero bueno....

Interceptas los mensajes con un TApplicationEvents:

Código Delphi [-]
procedure TFormMain.ApplicationEventsMessage(var Msg: tagMSG; var Handled: Boolean);
begin
    Handled := False;
      //Control del Lector de Código de Barras
      //El lector está configurado para enviar los prefijos 17 y 66
      //y final de línea 13
      if  (Msg.Message = WM_KEYDOWN) then
      BEGIN
        if Msg.wParam = 17 then
            Begin
            lBarCode := True;
            Handled := True ;
            Exit;
            End;
        if (Msg.wParam = 66) And lBarCode then
            Begin
            lBarCode1 := True;
            Handled := True ;
            Exit;
            End;
        if (Msg.wParam <> 13) And lBarCode1 then
            Begin
            cBarCode := cBarCode + Chr(Msg.wParam);
            Handled := True ;
            Exit;
            End;
        if (Msg.wParam = 13) And lBarCode1 then
            Begin
            lBarCode := False;
            lBarCode1 := False;
            Handled := True;
            DoCodeBar(NIL);
            End;

      END;

end;

Luego el procedimiento que procesa las entradas.... (A MODO DE EJEMPLO)

Código Delphi [-]
procedure TFormMain.DoCodeBar(Sender : TObject);
Var
cPrefix1 : String;
cPrefix2 : String;
cPrefix3 : String;
Begin

(*
Todas las Tablas que incluyen código de barras llevan unos prefijos de tres dígitos con los siguientes valores
AUNQUE EL PRIMER CERO LO PONE EL COMPONENTE DE BARRAS
LA CONFECCIÓN DE DICHOS DÍGITOS VIENE DETERMINADA EN UN CAMPO AUTO-CALCULADO [[[[ BARCODE ]]]] de tipo Float

101 - MÁQUINAS
105 - OT FIJA
0110 - CODIGO DE CONTACTO + carpeta +
0211 - PEDIDO DE CLIENTE + (4 DÍGITOS EJERCICIO) - RESTO EL PEDIDO...  FORMATEADO
0212 - OFERTA DE CLIENTE + + (4 DÍGITOS EJERCICIO) - RESTO DE LA OFERTA
400 - OT
500 - PARTE DIARIO
700 - PEDIDO A PROVEDORES
710 - PETICION DE PRESUPUESTOS A PROVEEDORES
800 - ALBARANES
900 - FACTURAS
950 - NOTAS DE ENTREGA
'0211' + '2005' + '0000'

*)

if   cBarCode = '' then Exit;


Try
    ApplicationEvents.OnMessage := nil;

    Application.ProcessMessages;

    Memo1.Lines.Add(cBarCode);

    cPrefix1 := Copy(cBarCode,1,4);
    cPrefix2 := Copy(cBarCode,5,4);
    cPrefix3 := Copy(cBarCode,9,4);

    cBarCode := '';

    If cPrefix1 = '0110' then
        Begin
        Actionxxx.Execute;
        End;


    //Pedidos de Clientes
    If cPrefix1 = '0211' then
    Begin
    Actionxxxzzzi.Execute;
    End;


    //Ofertas a Clientes
    If cPrefix1 = '0212' then
    Begin
    Actiondddi.Execute;
    End;

finally
    ApplicationEvents.OnMessage := ApplicationEventsMessage;
End;

End;

Evidentemente, la codificación dependerá de tus códigos y por supuesto de como esté configurado el lector.
Espero que te resulte útil..

Saludos
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO
Responder Con Cita
  #7  
Antiguo 17-02-2007
cureham cureham is offline
Registrado
 
Registrado: ago 2006
Posts: 6
Poder: 0
cureham Va por buen camino
gracias ardilla, a primera vista no comprendi muy bien tu codigo pero dejame tratar de implementarlo y a veri si hago q funcione este show, pero de cualquier forma gracias por la atencion
Responder Con Cita
  #8  
Antiguo 17-02-2007
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
Orales!

Yo hiba a dar una respuesta tipo:

Pon tu TEdit en ReadOnly (los componentes Jedi tienen esta opción) y listo.

Parece que andaba muy perdido.
__________________

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
Leer buffer de teclado dieleo Varios 0 12-02-2007 19:23:19
Leer Puerto USB (Multi teclado USB) DTAR Varios 0 08-06-2006 16:36:48
Como leer todos los eventos del teclado en todas las aplicaciones?? JuanErasmo API de Windows 1 04-04-2006 16:35:43
Ayuda por el teclado egm1802 Varios 3 05-03-2004 07:11:13
AYUDA para leer el contenido de un TexFile jorch_yr Varios 3 03-01-2004 21:55:47


La franja horaria es GMT +2. Ahora son las 22:14:33.


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