Ir para conteúdo
  • Cadastre-se

dev botao

Pay&go - Adm - Lerrespostarequisicao


Ver Solução Respondido por Evandro Silva,
  • Este tópico foi criado há 3833 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Bom dia pessoal,

 

Estou com um problema que não consigo entender o motivo, creio que seja algo que não programei ou modifiquei no ACBrTEFD. Quando executo o "ADM" e Clico no botão "Cancelar" do GP Dial ao voltar para minha aplicação na procedure "LerRespostaRequisicao" sempre apresenta um estouro de memória "Access Violation" quando chega na linha TACBrTEFD(Owner).EstadoResp  := respAguardandoResposta; do ACBrTEFDClass, e esse problema só ocorre quando executo o "ADM" e clico no Cancelar do gerenciador, todas as outras funções estão funcionando perfeitamente.

post-5436-0-05825300-1383053539.png

Editado por Evandro Silva
Link para o comentário
Compartilhar em outros sites

  • Consultores

Visto que o Access violation é uma leitura (Read) e o endereço (address) é muito próximo de 00000000 (nil), muito provavelmente Owner está nil.

 

Você está criando o componente em runtime? Quando essa ADM está sendo executada? Qual a diferença da sua execução com o DEMO do ACBrTEFD?

[]'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.
Link para o comentário
Compartilhar em outros sites

Primeiramente obrigado! Abaixo segue as respostas aos seus questionamentos.

 

* Eu não estou criando o componente em tempo de execução.

 

* Criei um menu TEF em minha plicação onde executo o ADM e o ACBrTEFD está em outro formulário conforme o comando: Form_principal.ACBrTEFD1.ADM(TACBrTEFDTipo(IndexGP)).

 

* Eu alterei a procedure VerificarTransacaoPagamento(Valor: Double) conforme abaixo porque eu já envio o saldo a pagar direto por conta de alguns tratamento e devido isso não é necessário o cálculo.

 

    // Alterei as linhas abaixo para poder finalizar o cupom e tratar o saldo devedor
    //    SaldoAPagar := InfoECFAsDouble(ineSubTotal) ;
    //    SaldoAPagar := SaldoAPagar - InfoECFAsDouble(ineTotalAPagar,0);
        SaldoAPagar := InfoECFAsDouble(ineTotalAPagar,0);
        RespostasPendentes.SaldoAPagar := SaldoAPagar ;
    ////////////////////////////////////////////////////////////////////////////////////
 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Verificou se o Owner é mesmo nil como eu mencionei?

[]'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.
Link para o comentário
Compartilhar em outros sites

  • Solution

Consegui identificar o problema e corrigir foi o seguinte:

 

No evento onMudaEstadoResp estava fazendo referência ao botão bCancelarResp que estava em um form que não estava aberto, por isso o Access Violation, então coloquei a verificação conforme abaixo.

 

Antes estava assim:

 

           Form_fechamento_valor.bCancelarResp.Visible := (EstadoResp = respAguardandoResposta);

 

E agora está assim:

 

      if Form_fechamento_valor <> nil then
        Form_fechamento_valor.bCancelarResp.Visible := (EstadoResp = respAguardandoResposta)
      else if Form_menu_tef <> nil then
        Form_menu_tef.bCancelarResp.Visible := (EstadoResp = respAguardandoResposta);
 

Muito obrigado pela ajuda, ela foi de muito importante para resolução do problema.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Ha! Então o Access Violation era em outro lugar. :P

[]'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.
Link para o comentário
Compartilhar em outros sites

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