Runtime error
Olá!
Eu criei uma aplicação MDI em Delphi 7 e há poucos dias me deparei com um erro que acontece depois que a aplicação é terminada:
´Runtime error 216 at 00445D34´
Esse erro é disparado ´quase´ todas as vezes que eu encerro a aplicação com algum MDIChild aberto.
Alguém pode me dizer que erro é esse?
Eu criei uma aplicação MDI em Delphi 7 e há poucos dias me deparei com um erro que acontece depois que a aplicação é terminada:
´Runtime error 216 at 00445D34´
Esse erro é disparado ´quase´ todas as vezes que eu encerro a aplicação com algum MDIChild aberto.
Alguém pode me dizer que erro é esse?
@fabio
Curtidas 0
Respostas
Massuda
16/12/2004
Essa é uma mensagem de erro genérica. Para facilitar, tente determinar onde o erro está ocorrendo. Para isso:[list:79715199da][*:79715199da]marque as opções de debug em Project/Options/Compiler/Debugging[*:79715199da]dê um build (menu Project/Build) no seu programa[*:79715199da]inicie a execução do seu programa[*:79715199da]volte no Delphi[*:79715199da]no menu Search/Find Error, informe 00445D34[/list:u:79715199da]Com um pouco de sorte, o Delphi irá mostrar a linha problemática.
GOSTEI 0
Paulo_amorim
16/12/2004
Olá
Isso ocorre depois de fechada a aplicação? Ou eh em algum evento de fechamento (OnClose, OnCloseQuery) ?
Se o caso eh esse, pode-se fechar todas as MDIChildren que não dá pau ué
Faz-se um for até MDIChildCount, fechando a MDIChildren do indice ...
Espero que ajude
Até+
Isso ocorre depois de fechada a aplicação? Ou eh em algum evento de fechamento (OnClose, OnCloseQuery) ?
Se o caso eh esse, pode-se fechar todas as MDIChildren que não dá pau ué
Faz-se um for até MDIChildCount, fechando a MDIChildren do indice ...
Espero que ajude
Até+
GOSTEI 0
@fabio
16/12/2004
Valeu pela dica, mas eu já fecho todos os MDIChildren com este loop.
Mas eu acho que resolvi.
A dica do Massuda de usar o Find Error me apontou a linha maldita que eu não via no debug.
O erro não tá mais acontecendo, por enquanto.
Obrigado.
Mas eu acho que resolvi.
A dica do Massuda de usar o Find Error me apontou a linha maldita que eu não via no debug.
O erro não tá mais acontecendo, por enquanto.
Obrigado.
GOSTEI 0
Alex Maia
16/12/2004
Utilizei a dica do massuda para encontrar a linha que esta causando o erro de número 00404326 e o delphi esta apontando pra linha destroi do código abaixo:
procedure TObject.Free;
begin
if Self <> nil then
Destroy;
end;
Este código está na unit system.pas e ocorre logo no início da execução da minha aplicação. O arquivo principal do meu aplicativo não está no formato .exe, mas sim no .pts, sendo que eu o transformo para .tmp e depois executo a aplicação.
Alguem sabe me dizer algo sobre este erro?
procedure TObject.Free;
begin
if Self <> nil then
Destroy;
end;
Este código está na unit system.pas e ocorre logo no início da execução da minha aplicação. O arquivo principal do meu aplicativo não está no formato .exe, mas sim no .pts, sendo que eu o transformo para .tmp e depois executo a aplicação.
Alguem sabe me dizer algo sobre este erro?
GOSTEI 0
Massuda
16/12/2004
Provavelmente você deu um Free em um objeto que já foi destruído anteriormente. O erro está sendo gerado dentro da unit System, mas ele foi causado, provavelmente, em algum ponto do código que você escreveu.
É estranho que você dizer que isso ocorre ao iniciar a execução do seu programa.
Tente executar seu programa na IDE e, quando ocorrer o erro, tecle Ctrl-Alt-S para ser exibida a pilha de execução do programa ([i:a46fbc0500]call stack[/i:a46fbc0500]). Clique nos itens dessa lista para que seja exibido o código fonte correspondente e veja se dá para determinar o ponto exato que está causando o erro.
É estranho que você dizer que isso ocorre ao iniciar a execução do seu programa.
Tente executar seu programa na IDE e, quando ocorrer o erro, tecle Ctrl-Alt-S para ser exibida a pilha de execução do programa ([i:a46fbc0500]call stack[/i:a46fbc0500]). Clique nos itens dessa lista para que seja exibido o código fonte correspondente e veja se dá para determinar o ponto exato que está causando o erro.
GOSTEI 0
Alex Maia
16/12/2004
Massuda, o estranho é que isso não ocorre em muitas máquinas. Acontece EM ALGUMAS que possuem o XP. As vezes dá o erro na primeira tentativa de execução, mas depois fica tudo normal. E agora??
GOSTEI 0