-
Total de ítens
66 -
Registro em
-
Última visita
Community Answers
-
Vitor Cortinovis's post in ACBrMTer - Problema de conexão com múltiplos Micro Terminais was marked as the answer
Boa tarde. Outros desenvolvedores da minha equipe me auxiliaram nessa questão e aparentemente conseguimos obter resultados. Com isso, irei realizar e simular vários tipos de testes para serem feitos para verificar se o erro foi solucionado. Após finalizar os testes e verificar que realmente a solução obteve êxito, irei estar atualizando a Demo do projeto ACBrMTer e postando aqui no tópico para que possam verificar a lógica e futuramente estarem atualizando os fontes da Demo no projeto ACBr. Agradeço a atenção de todos que ajudaram de alguma forma nesse tópico.
Nesse tópico eu pedi algumas respostas imediatas mas não é assim que funciona, então peço desculpa caso algum integrante se sentiu pressionado a respeito, beleza? Obtive bastante informação pra estar explicando ate mesmo para meu colega de trabalho como o erro acontece e sendo assim achando a possível solução do problema.
Irei aplicar a solução e realizar os demais testes e se a solução obtiver êxito, estarei disponibilizando os novos fontes da Demo do ACBrMTer.
Valeu galera...
Obs: Não fechem ainda esse tópico pois daqui um tempo postarei os fontes atualizados da Demo nesse tópico!!
-
Vitor Cortinovis's post in ACBrMTer - Problemas ao enviar texto para o display was marked as the answer
Boa noite. Resolvi meu problema criando uma procedure Delay para que o sistema fique esperando a mensagem ser exibida e fechada para continuar a ser executado.
https://showdelphi.com.br/dica-como-implementar-a-funcao-delay-do-pascal-delphi/
Para mais informações de como montar a função de "Delay", segue o link a cima da estrutura da função para quem estiver com o mesmo problema que o meu.
Para aplicar a função, basta:
procedure Esperar(dwMilliseconds: Longint); var iStart, iStop: DWORD; begin iStart := GetTickCount; repeat iStop := GetTickCount; Application.ProcessMessages; Sleep(1); until (iStop - iStart) >= dwMilliseconds; end; procedure CarregarVendedor(codVendedor: Integer; cIP: String); begin BuscaVendedor(codVendedor); ACBrMTer.LimparDados(cIP); ACBrMTer.EnviarTexto(cIP, 'Carregando'); ACBrMTer.PosicionarCursor(cIP, 2, 1); ACBrMTer.EnviarTexto(cIP, 'Vendedor'); Esperar(2000); // 2000 corresponde a 2 segundos, por exemplo CarregarComanda(cIP); end; Fica um exemplo de uso para quem precisar de ajuda para prosseguir com a implementação em seu projeto.
Por meio de pesquisa e estudo do codigo-fonte, Demo do ACBr, fontes externas, consegui aplicar esse método.
Tópico resolvido.
-
Vitor Cortinovis's post in ACBrMTer - Problema ao enviar caracteres - WilborTech was marked as the answer
Boa noite. Consegui resolver o problema dos caracteres se perderem em meio a digitação. Estava utlizando o Demo do próprio ACBr e percebi que a cada tecla pressionada no Microterminal, o gerenciador gravava essa sigla em um TClientDataSet, com isso quando o processo de gravação estava sendo executado, se apertasse outra tecla, de maneira mais rápida, a mesma não era reconhecida pelo gerenciador e passava como NULL, resultando em perda de caracter.
No gerenciador que estou desenvolvendo, eu não alimento um TClientDatSet a cada sigla pressionada. Eu retorno cada sigla pressionada em uma variável global onde ela só sera efetivamente gravada quando o ENTER for pressionado e a função designada precisar da junção das siglas.
Então, para melhor funcionamento da Demo do gerenciador de Microterminais, no evento OnRecebeDados não grave a cada sigla pressionada em um TClientDataSet, armazena todas as siglas em uma variável ou record e só retorne quando necessário para um BD ou um TClientDatSet.
Obrigado pelas dicas e sugestões anteriores! Consegui solucionar o mistério das teclas desaparecidas... hehe.
Caso queria, eu atualizo o fonte do ACBr e mando aqui nesse Post para que voces possam observar o que foi mudado e o porque da mudança.
Nesse caso, eu me refiro aos eventos de BACKSPACE e DEL/ESC. O componente, no modelo VT100, não faz automaticamente as funções de BACKSPACE e nem de DEL. Queria saber o motivo e se é assim mesmo pois a configuração fica a gosto de quem estiver programando?
BS_DEL.bmp