erro ao acessar componente de form em tempo de execucao

Delphi

31/03/2005

Olá, estou usando Application.CreateForm(TForm, Form); Form.ShowModal; Form.Destroy para criar forms em tempo de execuca.
O problema é que tem uma tela de entrada de produtos, e no final tem uma rotina pra transferir as quantidades para o estoque e ta dando erro na hora da transferencia. Acredito eu que seja porque to tentando acessar um IBDataset no formulario do cadastro de produtos e este ainda naum foi criado, ou ja foi destruido. Será que a melhor maneira é deixar todos os DataSets( IBDataset, IBQuery e DataSources) em um DataModule ou tem como resolver isso???


Eduunai

Eduunai

Curtidas 0

Respostas

Domingosafn

Domingosafn

31/03/2005

Você pode testar se o componente existe:

if FormCadastroProdutos <> nil then
transferir_quantidades
else
Application.CreateForm(FormCadastroProdutos, Form);


Algo assim ...


GOSTEI 0
Raserafim

Raserafim

31/03/2005

com a rotina sugerida por domingosafn vocë pode resolver o seu problema pois caso o form ainda não tenha sido criado (ou já esteja destruido) será criado, mas vc precisa fazer uma alteração neste código para que após ser criado a transferência ocorra:
if FormCadastroProdutos <> nil then 
  transferir_quantidades 
else
begin 
  Application.CreateForm(FormCadastroProdutos, Form);
  transferir_quantidades;
end;


Mas eduunai, lhe aconselho, por experiência própria e principalmente pelo que rege as boas práticas da programação, coloque os componentes de acesso em um DataModulo. seu código vai ficar bem mais organizado e robusto.


GOSTEI 0
POSTAR