Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado (editado)

Boa tarde galera!

 

Gostaria da opinião de vocês quanto a utilização do ACBrLCB.

 

Quando desenvolvi o meu PDV, pra não variar sem tempo suficiente pra fazer tudo de forma bem pensada, acabei utilizando o componente ACBrLCB em 4 telas distintas do meu sistema, abrindo e fechando a COM quando cada uma delas é acessada.

 

Ao meu modo de ver isso não e uma boa prática.

 

Quando eu tinha o pdv desenvolvido em java, apliquei um pattern(observer) pra ter uma classe que fazia essa leitura, e cada classe que necessitava desse acesso se registrava pra receber a informação do scanner.

 

Alguém já fez dessa maneira em Delphi?

 

Gostaria de saber como vocês tratam isso, ou seja, ter 1 componente ACBrLCB no projeto inteiro sendo utilizado em várias telas do sistema.

 

Obrigado por qualquer dica ou sugestão.

 

Att.

Editado por giulianon

Giuliano Naspolini Ribeiro

Automalog Consultoria e Sistemas Ltda

  • Consultores
Postado

Vai depender mesmo de como seu software está organizado. Se você estiver com dúvida, eu sugiro seguir o que o Juliomar indicou.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
  • Fundadores
Postado

Acho que o problema maior no caso dele... é saber em qual tela o ACBrLCB deve "escrever" o que ele leu da Serial...

 

Aqui usei um evento que lê o conteúdo de Screen.ActiveForm e com isso sabe onde deve mandar os dados...

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.

Postado

Psé a questão é bem essa que o Daniel colocou.

 

Pra usar como o Juliomar sugeriu, eu teria que usar o LCB como fila, e ficar monitorando de tempo em tempo pra pegar o que foi lido, e assim tratar na tela específica, ou sinalizar com alguma flag no momento que o OnLeCodigo fosse "disparado".

 

Agora que estou com tempo, vou implementar ambas as opções do Juliomar e do Daniel pra ver qual se adapta melhor pro meu caso.

 

Também vou tentar implementar o pattern Observer como no java pra ver se fica legal, e ai posto aqui o resultado, e o que eu acho que funcionou melhor.

 

Obrigado pelas dicas!

 

Abraço!

 

Att.

Giuliano Naspolini Ribeiro

Automalog Consultoria e Sistemas Ltda

  • 2 semanas depois ...
Postado

Bom tarde!

 

Só pra encerrar o tópico, deixo em anexo o exemplo com a forma que eu achei a ideal, que foi utilizando Screen.FormActive e criando um form genérico para as telas que precisam de leitura do ACBrLCB.

 

Att.

scanner.zip

  • Curtir 1

Giuliano Naspolini Ribeiro

Automalog Consultoria e Sistemas Ltda

  • Consultores
Postado

Legal que resolveu seu caso Giuliano. Agradecemos pelo retorno.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
  • 1 ano depois...
Postado

ressuscitando um topico antgio, mas so agora to implementando o LCB Serial antes utilizava um aplicativo chamado ExCom.exe que nao funciona em win64 bits. Dessa forma que foi feito no fonte em anexo funciona bacana, mas acho que pra quem ja tem o projeto desenvolvido fica dificil de implementar pois utiliza herança, pensei pq nao utilizar interface. no meu caso em alguns formulario eu utilizo edit, entao ativando o ACBrLCB no DM é so pegar o ActiveControl do formulario ativo e escrever no objeto mas em outros formularios faço um tratamento diferente pra leitura do codigo de barras. no meu caso fiz assim:

criei uma interface

  ILerLCB = interface
    ['{58B73999-39C3-41E6-8BF2-1AAA6F644E39}']
    procedure LerLCB(UltimoCodigo: String);
  end;

no leCodigo do ACBrLCB

var
  cnt : integer;
  iLB : ILerLCB;
  UltimoCodigo: String;
begin
   UltimoCodigo:=ACBrLCB1.UltimoCodigo;
   if Supports(Screen.ActiveForm, ILerLCB, iLB) then
     iLB.LerLCB(UltimoCodigo)
   else
   begin
      if Screen.ActiveControl is TEdit then
        TEdit(Screen.ActiveControl).Text:=UltimoCodigo;

      if Screen.ActiveControl is TDBEdit then
        TDBEdit(Screen.ActiveControl).Text:=UltimoCodigo;

   end;

nos formulario que quero um tratamento diferenciado pra leitura

eu modifico 

TForm3 = class(TForm, ILerLCB)

e implemento o LerLCB

  public
    { Public declarations }
    procedure LerLCB(UltimoCodigo: String);
  end;
  • Curtir 2
  • Este tópico foi criado há 3544 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

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.