Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

  • Membros Pro
Postado

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!

  • Fundadores
Postado

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.

  • 2 semanas depois ...
  • Administradores
Postado

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 !!

  • Este tópico foi criado há 2246 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...
The popup will be closed in 10 segundos...