Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Fér@

arrumar um erro no sistema

Recommended Posts

begin
  Application.Initialize;
  Application.Title := 'Sistema de Contagem Lig Chopp';
  [u][b]Application.CreateForm(TDM, DM);[/b][/u] --> Crie os DataModules antes de tudo
  Application.CreateForm(TFrmLogin, FrmLogin);
  Application.CreateForm(Tfrmmenuprin, frmmenuprin);
  Application.CreateForm(TFrmSplash, FrmSplash);
  Application.CreateForm(TFrmCadPadrao, FrmCadPadrao);
  Application.CreateForm(TFrmCadCliente, FrmCadCliente);
  Application.CreateForm(TFrmCadFornecedores, FrmCadFornecedores);
  Application.CreateForm(TFrmCadCategoria, FrmCadCategoria);
  Application.CreateForm(TFrmCadFuncionarios, FrmCadFuncionarios);
  Application.CreateForm(TFrmMovVendas, FrmMovVendas);
  Application.CreateForm(TFrmMovItensdaVenda, FrmMovItensdaVenda);
  Application.CreateForm(TFrmCadItens, FrmCadItens);


  Application.Run;
end.

Por isso está dando Violação de memória, você está chamando o DataModule no Login, porem este ainda não foi criado. Dica: Sempre crie os Datamodules do seu sistema antes de tudo.

 

 

Isso aqui resolveu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uma dica é tirar toda essa tralha do autocreate.

Deixa só o datamodule ali.

 

Quanto mais forms você tiver, mas pesado seu sistema vai ficar, isso sem falar no consumo de memoria.

 

Eu crio todos meus forms em execução e assim que saio de um deles o destruo pra liberar a memoria.

 

ex: ao acessar o menu cadastro > clientes

 

cria o form de clientes

da um show nele pra ele aparecer

 

no evento de close você destroi ele e pronto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pois intão. O que acontece é o seguinte. Você esta chamando o form de login dentro do form principal. O Delphi tem uma ordem na qual ele cria os formulários.

 

Ele cria o form principal antes de todos e executa o seu evento "onCreate". Depois ele cria o segundo form e executa seu evento "onCreate" e por ai vai.

 

Você esta chamando o seu form de login dentro do evento onCreate do form prinicpal. Como este evento esta sendo executado antes da criação de qualquer outro form, você esta chamando um form que ainda não foi criado.

 

Para confirmar, recorte a linha em que você chama o form de longin la no "onCreate" do form principal e coloque no evento "onShow" do form prinicpal e depois posta ai se deu certo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pois intão. O que acontece é o seguinte. Você esta chamando o form de login dentro do form principal. O Delphi tem uma ordem na qual ele cria os formulários.

 

Ele cria o form principal antes de todos e executa o seu evento "onCreate". Depois ele cria o segundo form e executa seu evento "onCreate" e por ai vai.

 

Você esta chamando o seu form de login dentro do evento onCreate do form prinicpal. Como este evento esta sendo executado antes da criação de qualquer outro form, você esta chamando um form que ainda não foi criado.

 

Para confirmar, recorte a linha em que você chama o form de longin la no "onCreate" do form principal e coloque no evento "onShow" do form prinicpal e depois posta ai se deu certo.

 

 

Raficcha

Eu naum coloquei no evento 'onCreat' do form principal

acho q foi por isso q ele ta dando esse erro!!!

 

Naum mudou nada!!!

continua dando o mesmo erro!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.