Jump to content
Notícias do ACBr

click.png

click.png

click.png

click.png

click.png

click.png

logo_acbr_paygo.png

TEF ACBr PayGo
Seja um revendedor e ofereça uma solução completa para seu cliente.


Saiba mais

beneficios.png

click.png

click.png

click.png

ACBrMTer - Não respeita foco na coluna no evento OnRecebeDados


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

Recommended Posts

  • Membros Pro

Olá amigos, estou desenvolvendo uma solução para usar micros terminais com o componente ACBrMTer, porem quando mando focar o cursor em uma coluna dentro do evento OnRecebeDados, ele até foca, mais quando o evento OnRecebeDados termina o cursos volta para a posição 1 da linha que ele estiver focado.

Se mando focar em uma coluna fora da rotina do OnRecebeDados, ele foca formal, o problema só acontece quando esta dentro do OnRecebeDados, e é nele que precisa tratar as informações.
Já testei com dois micros terminais, WillTec e Gertec, ambos apresentam o mesmo problema, testei também usando o demo do ACBrMTer.

Aguardo!

Link to comment
Share on other sites

  • Fundadores

Por favor poste um exemplo de código...

Há como reproduzir o problema, com o Demo do MTER ?

Use a Força, leia os fontes...

Observe que após o OnRecebeDados ser invocado, o código continua, e efetua o "echo" do caractere recebido

procedure TACBrMTer.DoRecebeDados(const TCPBlockSocket: TTCPBlockSocket;
  const Recebido: AnsiString; var Enviar: AnsiString);
var
  wIP, wRecebido: AnsiString;
  wConexao: TACBrMTerConexao;
  wEchoMode: TACBrMTerEchoMode;
  wLendoPeso: Boolean;
begin
  wIP        := TCPBlockSocket.GetRemoteSinIP;
  wConexao   := fConexoes.Conexao[wIP];
  wEchoMode  := EchoMode;
  wRecebido  := fMTer.InterpretarResposta(Recebido);

  if (wRecebido = EmptyStr) or (not Assigned(wConexao)) then
    Exit;

  wLendoPeso := wConexao.LendoPeso;

  GravaLog('Terminal: ' + wIP + ' - LendoPeso: ' + BoolToStr(wLendoPeso, True) +
           ' - RecebeDados: ' + Recebido);

  wConexao.UltimoDadoRecebido := MTer.LimparConteudoParaEnviar(wRecebido);

  if wLendoPeso then
    Exit;

  if Assigned(fOnRecebeDados) then   // <---- AQUI O SEU CÓDIGO DO EVENTO SERÁ CHAMADO
    OnRecebeDados(wIP, wRecebido, wEchoMode);

  case wEchoMode of
    mdeNormal  : Enviar := fMTer.ComandoEco(wRecebido);
    mdePassword: Enviar := fMTer.ComandoEco(PadCenter('', Length(wRecebido), PasswordChar));
  end;
end; 

 

  • Like 2
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link to comment
Share on other sites

  • 2 weeks later...
  • Consultores

Tópico fechado por falta de retorno do usuário

Consultora SAC ACBr

Juliana Tamizou
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link to comment
Share on other sites

  • Este tópico foi criado há 939 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui
Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.