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-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
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 09:01:05.


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