Ir para conteúdo
  • Cadastre-se

dev botao

ACBrMTer - Problemas ao enviar texto de espera para o display do terminal


Recommended Posts

Boa tarde, estou tendo um problema ao enviar o texto para o diplay do terminal depois que le as repostas(estou me baseando no exemplo do ACBrMTer)
Exemplo: Quando a pessoa digita um codigo do Item:


image.thumb.png.b7f72a8769f75002a09980ada526b447.png
 

faço uma consulta no banco, se nao existir jogo para o display:

ACBrMTer.PosicionarCursor(IP, 1, 1);
ACBrMTer.EnviarTexto(IP, 'Item: 1');
ACBrMTer.PosicionarCursor(IP, 2, 1);
ACBrMTer.EnviarTexto(IP, 'Nao foi encontrado');


ate ae tudo bem.. acontece que que o processo e muito rapido, nao da tempo de le, eu gostaria que na tela do terminal desse uma pausa e continuasse o processo..
tentei mudar a propriedade WaitInterval.. tbm tentei usar uum Sleep.. mas pecebi que n funciona pos ele trava a app.. nao o processamento no display..

alguem teria uma sujestao como resolver isso?

 

Grato. 

Link para o comentário
Compartilhar em outros sites

  • Fundadores
Em 09/03/2024 at 17:29, TiagoNormando disse:

tentei mudar a propriedade WaitInterval.. tbm tentei usar uum Sleep.. mas pecebi que n funciona pos ele trava a app.. nao o processamento no display..

Em que momento você inseriu o Sleep ?

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

Numa primeira tentativa eu coloquei o código assim

Dento de AvaliarReposta...

..Leu o que foi digitado.

ACBrMTer.PosicionarCursor(IP, 1, 1);

ACBrMTer.EnviarTexto(IP, 'Item: 1');

ACBrMTer.PosicionarCursor(IP, 2, 1);

ACBrMTer.EnviarTexto(IP, 'Nao foi encontrado');

Sleep(2000):

LimparDisplay:

Alterar Status do terminal ..

 

Nisso no display..depois que digitei o código..ele pausou 2 segundos e apareceu os dois textos que enviei chamou próximo Status..

Numa segunda tentativa crei uma função MostrarMensagem ..dentro dela monto as duas linhas de texto para enviar e usei o Timer..onde ativo ele..com 2 segundos e coloquei nesse o comando de limpar display..mas teve o mesmo efeito do Sleep..

..

10 minutos atrás, Daniel Simoes disse:

Em que momento você inseriu o Sleep ?

Desculpa.. esqueci de marcar 😄

10 minutos atrás, Daniel Simoes disse:

Em que momento você inseriu o Sleep ?

Desculpa.. esqueci de marcar 😄

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Desculpe pela demora na resposta...

Faz muito tempo, que implementamos o componente MTER, e o Demo dele...

Lembro que algumas coisas ocorriam de forma Assincrona.. então Sleeps não são uma boa técnica...

Notei no Demo que tem o Evento:

procedure TForm1.ACBrMTer1RecebeDados(const IP: AnsiString; const Recebido: AnsiString; var EchoMode: TACBrMTerEchoMode);  

que acaba chamando o método:

procedure AvaliarRespostaTerminal(aIP: String; const aResposta: String);

Repare que ele tem estados que só pintam uma msg e saem, e que ele fica aguardando um "Enter", para buscar um Item, caso contrário, apenas adiciona o caractere digitado, no Buffer anterior

        if (aString[1] <> #13) then
        begin
          // Grava Resposta
          Edit;
          FieldByName('RESPOSTA').AsString := FieldByName('RESPOSTA').AsString + aString;
          Post;

          Exit;
        end;         

 

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

Em 20/03/2024 at 16:25, Daniel Simoes disse:

Desculpe pela demora na resposta...

Faz muito tempo, que implementamos o componente MTER, e o Demo dele...

Lembro que algumas coisas ocorriam de forma Assincrona.. então Sleeps não são uma boa técnica...

Notei no Demo que tem o Evento:

procedure TForm1.ACBrMTer1RecebeDados(const IP: AnsiString; const Recebido: AnsiString; var EchoMode: TACBrMTerEchoMode);  

que acaba chamando o método:

procedure AvaliarRespostaTerminal(aIP: String; const aResposta: String);

Repare que ele tem estados que só pintam uma msg e saem, e que ele fica aguardando um "Enter", para buscar um Item, caso contrário, apenas adiciona o caractere digitado, no Buffer anterior

        if (aString[1] <> #13) then
        begin
          // Grava Resposta
          Edit;
          FieldByName('RESPOSTA').AsString := FieldByName('RESPOSTA').AsString + aString;
          Post;

          Exit;
        end;         

 

Bom dia,  tudo bm? Obrigado pela repsota, sao nesses eventos que estou trablahando mesmo, mas a ideia era nao esperar enter mas sim a msg aparecer..esperar..sumir, por isso tentei usando o sleep.

Link para o comentário
Compartilhar em outros sites

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.