Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Balança: Toledo.

Versão dos fontes: Atualizado até a revisão 12865 de 26/01/2017.

Descrição do problema: Se configurar o componente TACBrBAL para monitorar a balança (ACBrBAL1.MonitorarBalanca := True;) o componente fica monitorando a balança, mas para de fazê-lo se o método TACBrBAL.LePeso for chamado. Ex: ACBrBAL1.LePeso( TimeOut );

 

O problema está no método abaixo:

function TACBrBAL.LePeso( MillisecTimeOut : Integer) : Double;
Var
  Ativado, Monitorando : Boolean ;
begin
  Ativado     := Ativo ;
  Monitorando := MonitorarBalanca ;

  try
     Monitorando := False ;
     
     if not Ativado then   { Ativa caso não tenha sido ativado antes }
        Ativar ;

     Result := fsBAL.LePeso( MillisecTimeOut ) ;

     if Assigned( fsOnLePeso ) then
        fsOnLePeso( UltimoPesoLido, UltimaResposta ) ;
  finally
     Ativo            := Ativado ;
     MonitorarBalanca := Monitorando ; 
  end ;
end;

 

Note que a variável Monitorando está recebendo o valor da propriedade MonitorarBalanca(linha 6) e em seguida, dentro do bloco try, recebe false. Portanto quando o método LePeso for chamado, a propriedade MonitorarBalanca sempre será definida como false.

 

Correção: Alterar método para: 

function TACBrBAL.LePeso( MillisecTimeOut : Integer) : Double;
Var
  Ativado, Monitorando : Boolean ;
begin
  Ativado     := Ativo ;
  Monitorando := MonitorarBalanca ;

  try
     MonitorarBalanca := False ;
     
     if not Ativado then   { Ativa caso não tenha sido ativado antes }
        Ativar ;

     Result := fsBAL.LePeso( MillisecTimeOut ) ;

     if Assigned( fsOnLePeso ) then
        fsOnLePeso( UltimoPesoLido, UltimaResposta ) ;
  finally
     Ativo            := Ativado ;
     MonitorarBalanca := Monitorando ;
  end ;
end;

 

  • Curtir 1
  • Este tópico foi criado há 2862 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.