Ir para conteúdo
  • Cadastre-se

dev botao

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


  • Este tópico foi criado há 1940 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 para o comentário
Compartilhar em outros 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; 

 

  • Curtir 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 para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...
  • Administradores

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

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

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 para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1940 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.

The popup will be closed in 10 segundos...