Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Pessoal,

Estou implementando o TEF via background da V&S Pague.

Percebi que durante a impressão do CDC, mais exatamente entre a primeira e a segunda vias, o sistema vai pra segundo plano, e uma outra aplicação qualquer aberta fica por cima dele. Isso só não acontece quando ele é a unica aplicação aberta.

Podem me ajudar?

Obrigado

Itamar Bermond

Ibersoft Sistemas
Governador Valadares, MG

Postado

Você programou corretamente o evento OnRestauraFocoAplicacao ?

Daniel,

Estou usando mesmo código do exemplo:

procedure TfrmPrincipal.acbrTEFRestauraFocoAplicacao(var Tratado: Boolean);

begin

  Application.BringToFront;

  Tratado := False;  { Deixa executar o código de Foco do ACBrTEFD }

end;

Testei também trocando o valor de Tratado para True, e a situação piorou: a aplicação passou a ser sobreposta durante o período de espera para passar o cartão.

Itamar Bermond

Ibersoft Sistemas
Governador Valadares, MG

  • Fundadores
Postado

Tente usar o seguinte:


Uses sndkey32
...

if not Visible then exit ;

Application.BringToFront;

{$IFDEF MSWINDOWS}
AppActivate( PChar( Self.Caption ) ) ;
{$ENDIF}

// Application.ProcessMessages;

Tratado := True ; { Não executa o código de Foco do ACBrTEFD }
[/code]

E adicione a unit e anexo na pasta do seu projeto

sndkey32.zip

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

Olá Daniel,

Obrigado pela sua atenção.

Usei o código que você sugeriu, mas não mudou nada. A aplicação continua sendo "jogada" pra trás entre a primeira e a segunda vias do CDC.

Talvez eu esteja fazendo algo errado em outro lugar.

Obrigado

Itamar Bermond

Ibersoft Sistemas
Governador Valadares, MG

  • Fundadores
Postado

Essa rotina da SndKey32 é ótima para capturar o foco... nunca vi ela falhar...

Acredito que seja algo no Cliente do V&SPague... eu achei o produto deles ainda imaturo, e por isso não levei adiante minha homologação...

Por favor repita o teste usando o projeto TEFDemo

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.

  • Membros Pro
Postado

Daniel, acho que o problema que o amigo ta passando deve ser paracedido com o que eu tava.

No demo temos a reposta sendo mostrado em um status bar, ele provavelmente como eu, colocou essa msg para ser mostrada em form, assim todo vida que muda de status ele fica criando e apagando o form, dai eu acho que a aplicação perde o foco ficando em segundo plano, mas quando a impressão acaba o foco é retornado.

Só por curiosidade daniel, como vc faz esse tratamento em suas aplicações?

  • Fundadores
Postado

Daniel, acho que o problema que o amigo ta passando deve ser paracedido com o que eu tava.

No demo temos a reposta sendo mostrado em um status bar, ele provavelmente como eu, colocou essa msg para ser mostrada em form, assim todo vida que muda de status ele fica criando e apagando o form, dai eu acho que a aplicação perde o foco ficando em segundo plano, mas quando a impressão acaba o foco é retornado.

Só por curiosidade daniel, como vc faz esse tratamento em suas aplicações?

Eu exibo as mensagens no mesmo Label que exibe a descrição dos produtos... No Lazarus, há uma propriedade chamada "TLabel.OptimalFill", que é ótima para auto ajustar o tamanho da fonte de acordo com o texto

Quando é um Menu ou entrada de Campo, ai sim, uso um Formulário específico...

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

Pessoal,

nazarenoneto tinha razão. O problema era realmente no diálogo com a mensagem. eu passei a usar um Label dentro do proprio form de venda e o problema não aconteceu mais.

Obrigado a todos.

Itamar Bermond

Ibersoft Sistemas
Governador Valadares, MG

  • Membros Pro
Postado

So uma duvida, a mensagem "Verificando o Gerenciador de TEF..." que o sistema deve exibir toda vez que for verificar se o gerencidor esta ativo, como vcs estao exebindo ela? em que evento do ACBrTEFD?

To com essa pedra aqui na cabeça e não to sabendo resolver.

  • Fundadores
Postado

Não é necessária essa msg... até porque vc precisará fazer isso a cada inicio de Transação... (veja no Roteiro)

Vc só precisa exibir msg se detectar que o G.P. não responde... e isso já é solicitado pelo ACBrTEFD através dos seus eventos...

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.

  • Membros Pro
Postado

Obrigado daniel, nao tinha prestado a atenção nessa questao, eu estava com o mesmo problema do amigo, mas tinha resolvido ainda, agora vo alterar pra ver no que vai dar.

  • 2 meses depois ...
  • Membros Pro
Postado

Estou com um problema intermitente, ou seja, tem hora que vai tudo certo tem hora que o problema ocorre:

Quando abro minha aplicação e deixo o gerenciador padrão desligado, a aplicação exibe um aviso que o GP não está ativo e irá ativá-lo. Nesse momento ocorre dois problemas:

1 - A aplicação exibe uma mensagem de erro dizendo que o gerenciador não está ativo, ao passo que posso notar que o mesmo está ativo.

2 - A mensagem de erro (Showmessage) perde o foco. Na realidade a aplicação inteira perde o foco.

A princípio achei que era porque eu exibia as mensagens em outro form. Depois passei a exibir no mesmo form (conforme dicas deste post) mas o erro persiste. Já tentei diversas variações no ONRESTAURAFOCO. Coloquei igual ao DEMO, tratado = true, tratado = false, mas nada.

O interessante é que eu só tenho problema de foco na abertura da aplicação. No mais durante as vendas, tudo OK.

  • 8 meses depois ...
Postado

estou com problema de foco somente quando da a mensagem. "Ultima transação TEF cancelada".

A mensagem é mostrada mas some, ficando atrás da tela de venda.

ja tentei de tudo.

Cilleni Caetano

Analista de Sistema

LM Systems

  • Fundadores
Postado

Nesse caso, isso parece ser um bug do G.P, pois se o mesmo já respondeu para a aplicação com o INTPOS.001, então ele não deveria emitir mensagens....

Se não me engano isso ocorre no Pay&Go... acho que tem um parâmetro que desabilita essa mensagem

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 ...
Postado

Eu estava tendo o mesmo problema de foco. Tive que criar uma procedure à parte para resolver o problema, chamando essa procedure no evento OnRestauraFoco do componente ACBrTEFD.

Segue o código da procedure:


procedure RestauraFoco;

var

  Form: TForm;

  Habilitado: Boolean;

begin

  try

    Form := nil;

    //Verifica se já existe um form ativo na tela.

    if Assigned(Screen.ActiveForm) then

      Form := Screen.ActiveForm

    //Do contrário, pega o último form criado

    else if Assigned(Screen.Forms[Screen.FormCOunt - 1]) then

      Form := Screen.Forms[Screen.FormCOunt - 1];

    if Assigned(Form) then

    begin

      //Verifica o estado da propriedade 'Enabled' do form

      Habilitado := Form.Enabled;

      //Habilita o form para permitir que o foco seja setado para o mesmo

      Form.Enabled := TRUE;

      //Envia o Form em questão para a frente da tela

      SetForeGroundWindow(Form.Handle);

      //Seta o foco da aplicação para o form

      if Form.CanFocus then

        Form.SetFocus;

      Form.Refresh;

      //Retorna a propriedade 'Enabled' para o estado anterior

      Form.Enabled := Habilitado;

    end;

  except

  end;

end;

Obs.: Eu uso a procedure no início do evento OnExibeMsg também, pra garantir que a aplicação terá foco no momento em que a mensagem for exibida.

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