Guest SalomaoCoelho Postado Abril 3, 2008 Denunciar Share Postado Abril 3, 2008 (editado) Galera,Estou com o seguinte problema quando fecho um formulario MDICHILD aparece o erro "stack overflow". e somente 2 tabelas estão abertas.o comando para fechamento segue ABAIXO:procedure TfrmAniverMes.FormClose(Sender: TObject; var Action: TCloseAction);beginfrmAgenda.adoAniversario_Dia.Close;close;end;como posso resolver isso? Editado Abril 4, 2008 por Micheus Não observação do item 3.7 das regras do forum - não digite em caixa alta Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Abril 3, 2008 Denunciar Share Postado Abril 3, 2008 Estou com o seguinte problema quando fecho um formulario MDICHILD aparece o erro "stack overflow". e somente 2 tabelas estão abertas.o comando para fechamento segue ABAIXO:Com certeza é possivel que seu programa esteja com um "loop" de eventos.Olhando o seu codigo, voce colocou detro do evento FormClose um comando close... isto faz uma chamada recursiva ao proprio evento até dar estouro de pilha ( stack overflow )procedure TfrmAniverMes.FormClose(Sender: TObject; var Action: TCloseAction); begin frmAgenda.adoAniversario_Dia.Close; //close; chamada recursiva end;outros motivos tambem podem ocasionar este tipo de erro:Por exemplo, se dentro de um BeforePost de uma tabela o seu programaprocessa alguma rotina que efetua novamente um BeforePost, sobre a mesma tabela, o programairá entrar em uma recursao até que o espaco da pilha do sistema se esgote.Neste caso experimente colocar um BreakPoint em algum ponto onde voce suspeita quepossa haver alguma chamada recursiva, e execute o programa passo-a-passo (use a tecla F7 ou F8para executar passo-a-passo).Alguns suspeitos:- BeforePost, AfterPost, BeforeEdit, etc.- OnValidate de alguns campos- OnClose- etc., etc.abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest SalomaoCoelho
Galera,
Estou com o seguinte problema quando fecho um formulario MDICHILD aparece o erro "stack overflow". e somente 2 tabelas estão abertas.
o comando para fechamento segue ABAIXO:
procedure TfrmAniverMes.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
frmAgenda.adoAniversario_Dia.Close;
close;
end;
como posso resolver isso?
Editado por MicheusNão observação do item 3.7 das regras do forum - não digite em caixa alta
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.