Jump to content

Compre o Delphi
Com até 30% de desconto
e parcelado em até 12x sem juros

Saiba Mais

Balança SM100 performance surpreendente

Tecnologia Japonesa   Teclado e Visor resistentes a água
Consumo inteligente de etiquetas   Baixo custo de manutenção
Comunicação Ethernet e WIFI independentes

Saiba mais

Impressora de Etiquetas ELGIN - L42 PRO

Protocolos PPLA, PPLB, ZPL, EPL (automático)
Porta USB padrão Opcionais: Ethernet, Serial, Paralela
Sensor de Etiquetas Móvel Garantia de 18 meses

Saiba mais

carlos_augusto

ANSWERED DELPHI : ONDE DISPARAR ROTINA DA PESQUISA IBPT

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

 

Share this post


Link to post
Share on other sites

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
Ajude o Projeto ACBr crescer - Assine o SAC

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

Share this post


Link to post
Share on other sites
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
Ajude o Projeto ACBr crescer - Assine o SAC

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.

Share this post


Link to post
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

Share this post


Link to post
Share on other sites

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.

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

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

×
×
  • Create New...