Ezequiel wrote:

> Ola pessoal!
> Criei um TFrame e agora estou tentando instanciá-lo dinamicamente.
> Tudo corre bem, mas quando preciso liberá-lo da memória dá a seguinte 
> mensagem: "Access violation at address 000000000"
> 
> Meu código:
> 
> //criação do frame
> frame := TFrameExemplo.Create(self);
> frame.Name := 'frameExemplo1';
> frame.Parent := Form1;
> frame.Show;
> 
> //liberação do frame
> frame.Free;

É provável que alguma parte do seu código tenta acessar algum componente 
do frame depois que ele foi destruído. Veja quais componentes o frame 
possui, e quem acessa estes componentes. Logo que ocorre a exceção, 
tecle Ctrl+F3 para ver o call stack, isto pode te dar uma pista. Para 
que a exceção pare mais próxima do ponto aonde está o problema, use um 
gerenciador de memória como o FastMM em modo debug.

Outra dica, libere o frame com FreeAndNil(frame) para que ele passe a 
apontar para nil ao invés de uma área de memória inválida.

--
João Morais

Responder a