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