Jump to content

chamada diadoacbr

Assista tectoy.png

DELPHI : ONDE DISPARAR ROTINA DA PESQUISA IBPT


Go to solution Solved by Daniel Simoes,
  • Este tópico foi criado há 989 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

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

 

Link to comment
Share on other sites

  • Fundadores
  • Solution

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

  • Like 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.

Link to comment
Share on other sites

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

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

Sim.

  • Like 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.
Link to comment
Share on other sites

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.

  • Like 1
Link to comment
Share on other sites

  • Administradores

Obrigado por reportar.

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

Consultora SAC ACBr

Juliana Tamizou
Ajude o Projeto ACBr crescer - Assine o SAC

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 !!

Link to comment
Share on other sites

  • Este tópico foi criado há 989 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.