Ir para conteúdo
  • Cadastre-se

dev botao
  • Este tópico foi criado há 4362 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Bom dia amigos,

Alguém aqui já fiz integração com o microterminal gertec? Se alguém puder me ajudar, agradeço... Estou utilizando ele como teclado normal, ele vai ficar no PDV no lugar do teclado do computador... o problema é q no form principal eu fiz a procedure WndProc e ele está lendo direitinho as teclas, mas ao abrir um outro form (com showmodal) ele não le as teclas digitadas e só vai responder depois que fecho o formulário e retorno pro form principal... alguém poderia me ajudar, por favor.

Att,

Ricardo

Postado

Tenho aplicativos que trabalham como serviço , comunicando com o banco de dados e não como vc fez para utilizar como teclado , no meu caso tenho um timer de comunicação onde se envia o comando e recebe o retorno de acordo com o comando que foi enviado !!

De acordo com oque vc explicou e oque eu entendi parece ser simples , mas vamos tentar no tato resolver o seu caso .

WndProc = tem que ser public para poder utiliza-la no form_filho !!

No form Principal na sua procedure WndProc , vc faz assim :

if form_filho <> nil then

begin

utilizar os comandos voltado para o meu form_filho

end

else

begin

utilizar os comandos voltado para o meu form principal

end;

obs:

1-form_filho tem quer ser criado em run time , ou seja , tem que ser avaliabe form .

2-no onclose do form_filho vc faz :

form_filho := nil;

action:=cafree;

acho que é isso .

Postado

Marcelo, cára... muito obrigado pela ajuda... vou tentar aqui e assim que tiver uma resposta eu posto o resultado...

Numa segunda etapa vou precisar fazer isso que você fez, ou seja, um aplicativo vinculado ao teclado, onde o usuario irá digitar o código da ficha, o produto e a quantidade para posterior fechamento da ficha... se você puder me enviar um exemplo de como fez isso ficaria muito grato.

Abraços e mais uma vez obrigado pela dica...

Ricardo

Postado

O Demo para microterminais Wilbor que segue na coletanea ACBr (ACBrTER) fui eu que desenvolvi , eu tenho tambem um Demo para microterminais TED tanto para com ou sem uso de HUB , posso postar pra vc sem problema ! A estrutura de envio e retorno são as mesmas para todos os microterminais , vc pode utilizar tranquilamente a estrutura/formato do Demo para o seu projeto !

Postado

Ow legal... parabéns pelo componente...

Se puder postar pra mim eu agradeço... vou tentar fazer o q vc disse aqui e depois posto o resultado... meu e-mail... [email protected]

Obrigado

Ricardo

Não desenvolvi o componente ACBrTER , criei apenas o Demo e implementei a leitura de Peso (Balança) que não tinha na epoca , hoje tenho o ACBrTER em produção para microterminal Wilbor !

Postado

Com relação ao exemplo q vc postou nao funcionou... vou postar o código abaixo pra vc ver...


....

      if (frmPagtoDN <> nil) then

      begin

        CTRL := frmPagtoDN.ActiveControl;

        if (buf[0] = 8) or (buf[0] = 13) or (buf[0] = 27) then

        begin

          {********************************************************************}

          {* Se a tecla foi BACKSPACE segue o seguinte procedimento           *}

          {********************************************************************}

          if (buf[0] = 8) then

          begin

            if (palavra[Message.LParamLo] <> '') then

            begin

              mt_backspace(Message.LParamLo);

              palavra[Message.LParamLo] := Copy(palavra[Message.LParamLo], 1, Length(palavra[Message.LParamLo])-1);

              strAux         := TEdit(CTRL).Text;

              Delete(strAux, Length(strAux), 1);

              TEdit(CTRL).Text := strAux;

            end;

          end

          {********************************************************************}

          {* Se a tecla foi ENTER segue o seguinte procedimento               *}

          {********************************************************************}

          else if (buf[0] = 13) then

          begin

            mt_formfeed(message.LParamLo);

            Sleep(100);

            if (CTRL.Name = 'edtValFpg') then

              frmPagtoDN.btnConfirma.Click;

          end

          {********************************************************************}

          {* Se a tecla foi ESC segue o seguinte procedimento                 *}

          {********************************************************************}

          else if (buf[0] = 27) then

          begin

            mt_formfeed(message.LParamLo);

            Sleep(100);

            worTecla := VK_ESCAPE;

            FormKeyDown(frmPagtoDN, worTecla, [ssShift]);

          end;

        end

        else

        begin

          mt_dispch(Message.LParamLo, buf[0]);

          palavra[Message.LParamLo] := palavra[Message.LParamLo] + strBuf;

          TEdit(CTRL).Text          := TEdit(CTRL).Text + strBuf;

          TEdit(CTRL).SetFocus;

          TEdit(CTRL).SelStart      := Length(TEdit(CTRL).Text);

        end;

      end

....


Acontece que chamo o formulario filho com ShowModal e fico esperando o resultado (ModalResult). Acontece que enquanto o formulário filho está aberto tudo que digito fica no buffer e só aparece quando fecho ele....

Postado

o principio basico de microterminais e que vc tem que ter a rotina com o microterminal dentro de um timer , executando o envio de comandos e a leitura doque chega na porta , preciso saber oque vc quer fazer acho que é o principio ...

Postado

Na vdd nesse projeto esse microterminal vai funcionar como um teclado... somente enviando comandos para o sistema... tanto é que só será aceito o microterminal alfanumérico...

Postado

Acredito que vc tera que criar uma unit separada com a programação de envio e retorno do microterminal , vamos se dizer uma unit publica , e não no form principal como esta , entende ? Crie uma unit publica e utilize ela no projeto , só assim vc vai poder contar com ela em todas as telas !

  • Este tópico foi criado há 4362 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.