Erro ao fechar aplicação! Erro quot;FFFFFFquot;
Colegas..
Criei um componenteque gera uma aplicação para formatação de relatórios via usuário, mas estou com um problema, todas as vezes que vou fechar a minha aplicação de relatórios, dá um erro de acesso..
FFFFFFF...
já verifiquei, e todos os componentes estão sendo liberados, assim como suas variáveis..
Não sei o pq mas só acontece quando eu abro um determinado form..
Alguém poderia me ajudar??
Agradeço antecipadamente
Cabelo
Criei um componenteque gera uma aplicação para formatação de relatórios via usuário, mas estou com um problema, todas as vezes que vou fechar a minha aplicação de relatórios, dá um erro de acesso..
FFFFFFF...
já verifiquei, e todos os componentes estão sendo liberados, assim como suas variáveis..
Não sei o pq mas só acontece quando eu abro um determinado form..
Alguém poderia me ajudar??
Agradeço antecipadamente
Cabelo
Cabelo
Curtidas 0
Respostas
Rômulo Barros
19/07/2004
Faça um laço em todos os componentes(forms) da sua aplicação e verifique quem é que é diferente de nil .
GOSTEI 0
Cabelo
19/07/2004
Colega..
Eu fiz o que vc sugeriu, e não tinha nenhuma variável, que não fosse nil, e ainda fiz uma rotina assim :
if assigned(variavel) then
begin
variavel.free;
end;
e mesmo assim continua dando erro..
O quê será ?
Cabelo
Eu fiz o que vc sugeriu, e não tinha nenhuma variável, que não fosse nil, e ainda fiz uma rotina assim :
if assigned(variavel) then
begin
variavel.free;
end;
e mesmo assim continua dando erro..
O quê será ?
Cabelo
GOSTEI 0
Beppe
19/07/2004
Um objeto(um form ou outro componente) está sendo destruído duas vezes. Uma solução(drástica) é comentar todos os free. Depois vc pode incluí-los novamente quando achar o erro.
GOSTEI 0
Cabelo
19/07/2004
Caro Colega Beppe..
Eu fiz o quê vc sugeriu..
Mas com certezanão estou ´matando´ duas vezes um objeto, já que debuguei várias vezes o meu projeto..
Só está dando erro quando finaliza a última linha do form Inicial do componente..
depois do end;
Agora o problema aumentou.. quando clico no menu da aplicação principal, pela segunda vez, dá erro..
Se puder me ajudar eu agradeço muito..
Cabelo
Eu fiz o quê vc sugeriu..
Mas com certezanão estou ´matando´ duas vezes um objeto, já que debuguei várias vezes o meu projeto..
Só está dando erro quando finaliza a última linha do form Inicial do componente..
depois do end;
Agora o problema aumentou.. quando clico no menu da aplicação principal, pela segunda vez, dá erro..
Se puder me ajudar eu agradeço muito..
Cabelo
GOSTEI 0
Persist
19/07/2004
Comigo aconteceu quando criava um objeto em execução, definia seu Parent e liberava o Parent antes do objeto.
Daí no For que liberava os objetos criados em execução, se fosse um TWinControl, atribuia nil à propriedade Parent antes de dar Free.
Daí no For que liberava os objetos criados em execução, se fosse um TWinControl, atribuia nil à propriedade Parent antes de dar Free.
GOSTEI 0
Cabelo
19/07/2004
Eu fiz exatamente como o amigo Persist sugeriu, mas continua dando o erro..
todas as vezes que fecho o form Inicial, dá o erro..
mais alguam sugestão???
agradeço a todos a atenção..
Cabelo
todas as vezes que fecho o form Inicial, dá o erro..
mais alguam sugestão???
agradeço a todos a atenção..
Cabelo
GOSTEI 0
Beppe
19/07/2004
O que vc tem no Destroy e Close do form?
GOSTEI 0
Cabelo
19/07/2004
No destroy, não tenho nada..
No Close :
procedure TRELATORIO.P_FormCloseRE(Sender : TObject; var Action : TCloseAction);
begin
P_DestroyComponentsConnection(´frmRE´);
//destroi componentes de acesso ao banco de dados, relacionados a este form
P_DestroyComponents(´frmRE´);
//destroi os componentes (objetos) do form
s_form_RE.Release;
//libera o form da memória
s_form_inicial.ShowModal;
//joga o foco para o form principal
end;
não consigo achar um erro..
agradeço a atenção de todos
Cabelo
No Close :
procedure TRELATORIO.P_FormCloseRE(Sender : TObject; var Action : TCloseAction);
begin
P_DestroyComponentsConnection(´frmRE´);
//destroi componentes de acesso ao banco de dados, relacionados a este form
P_DestroyComponents(´frmRE´);
//destroi os componentes (objetos) do form
s_form_RE.Release;
//libera o form da memória
s_form_inicial.ShowModal;
//joga o foco para o form principal
end;
não consigo achar um erro..
agradeço a atenção de todos
Cabelo
GOSTEI 0
Beppe
19/07/2004
A AV se dá em que linha?
GOSTEI 0
Cabelo
19/07/2004
No end.
GOSTEI 0
Beppe
19/07/2004
Retire s_form_RE.Release;
GOSTEI 0
Cabelo
19/07/2004
PQ??
Não vou liberar ele da memória, se entra de novo nesta tela, dá erro, dizendo que já existe o form que estou tentando criar..
Outra coisa, todos os outros 22 forms eu faço deste jeito e não dá erro.
Pq seria aí o erro?
Cabelo
Não vou liberar ele da memória, se entra de novo nesta tela, dá erro, dizendo que já existe o form que estou tentando criar..
Outra coisa, todos os outros 22 forms eu faço deste jeito e não dá erro.
Pq seria aí o erro?
Cabelo
GOSTEI 0