Ir para conteúdo
  • Cadastre-se

dev botao

DELPHI : ONDE DISPARAR ROTINA DA PESQUISA IBPT


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

Recommended Posts

Postado

Companheiros

Gostaria de solicitar sua ajuda para a seguinte situação, que está mais relacionada com a construção de uma aplicação Delphi.
Estou tentando fazer uma pequena aplicação que tem por objetivo :
a)-fazer um select distinct dos Estados cadastrados no banco de dados
b)-na sequência pesquisar todos os Códigos de NCM também cadastrados no Banco de Dados
c)-e finalmente, utilizando o componente AcbrIBPTTax , fazer pesquisa no banco de dados  para obter as definições de Tributação Nacional/IMportada/Estadual e Municipal

O problema que estou enfrentando é que estou disparando esta rotina que faz as pesquisas no site do IBPT diretamente nos eventos OnShow ou OnActivate do único formulário da
aplicação.
Desta forma o usuário não poderá fazer qualquer interação com o aplicativo, limitando-se apenas a visualizar o progresso.

Mas, como conseguência disto, embora a aplicação faça a tarefa que lhe está destinada, o formulário fica invisível.
Por outro lado , se eu disparo esta rotina de um botão , mediante um clique do usuário, o processamento da rotina ocorre normalmente.

Por acaso os companheiros tem alguma idéia da causa deste problema?

Terei que disparar esta rotina em outro ponto da aplicação?

Grato

Carlos

Franca-Sp

 

  • Fundadores
  • Solution
Postado

OnShow não é um bom evento para isso...

você poderia inserir um Timer. que no seu evento, desliga a sí próprio, e chama a sua rotina...

Application.ProcessMessages pode ajudar no efeito de tela congelada...

  • Curtir 1
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.

  • Consultores
Postado
Em 04/10/2019 at 17:11, carlos_augusto disse:

Terei que disparar esta rotina em outro ponto da aplicação?

Sim.

  • Curtir 1

[]'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.
Postado

Senhores

Boa Tarde!

Para resolver o problema eu procedi da seguinte forma :

a)-
const
  WM_STARTUP = WM_USER;

b)-No evento OnShow:  
  // aciono procedure que será executada no lugar do OnShow
  PostMessage(Handle, WM_STARTUP, 0, 0);
  // desabilito evento onshow
  OnShow := nil;

c)-Declaração da Procedure:
    procedure WMStartup(var Msg: TMessage); message WM_STARTUP;
 
d)-
procedure WMStartup(var Msg: TMessage);
begin
  inherited;
  // rotina de pesquisa
end;  

Esta foi a forma que resolvi o problema.

Muito obrigado.

  • Curtir 1
  • Administradores
Postado

Obrigado por reportar.

Fechando. Para novas dúvidas, criar um novo tópico.

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

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

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Este tópico foi criado há 1871 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.

The popup will be closed in 10 segundos...