Jerfs 1 Denunciar post Postado Agosto 31, 2007 Galera eu estou finalizando um aplicativo que tem várias telas, ao acessar tem um menu principal de onde se pode acessar os outros módulos. Meu problema é o seguinte, quando eu abro o programa, cerca de 15000K é alocado para o aplicativo, e cada tela que eu acesso, sobrem 2000K sem descarregar, ou seja, para cada tela aberta, some 2000K na memória sem limite. Como eu faço para resolver isso?! eu tentei usar o comando destroy, mas acho que não entendo muito bem o comando, Estou fazendo os seguinte, ao clicar no botão referente a saída da tela, primeiro eu fecho (close) e depois destruo (destroy) quando eu uso funciona certinho, ao fechar a tela, caem os 2000K da memória, mas quando vou acessar denovo dá problema de memória a mensagem é a seguinte:Debugger Exception NotificationProject raised exception class EAccessVioletion with message 'Access violation at address 00403680 in module. Read of address 013FC000. Process stoppe. Use Step or Run to continue.Alguém pode me dar uma mão!Valeu Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Agosto 31, 2007 Na hora que cria a tela é criado mais alguma outra coisa de forma dinâmica ?As telas que se refere seriam outros .exe ou pertencem tudo ao mesmo projeto ?Já tentou passo-a-passo e ver em qual linha dá erro. Compartilhar este post Link para o post Compartilhar em outros sites
Jerfs 1 Denunciar post Postado Agosto 31, 2007 Na hora que a tela é criada, é só a tela, nada dinâmico. O programa é um exe só... O erro que dá é aleatório, tem hora que dá e tem hora que não dá, o problema é que ele faz o comando, mas tem hora que faz e dá erro e tem hora que só faz sem dar erro... Compartilhar este post Link para o post Compartilhar em outros sites
Prog 183 Denunciar post Postado Agosto 31, 2007 Na hora que a tela é criada, é só a tela, nada dinâmico. O programa é um exe só... O erro que dá é aleatório, tem hora que dá e tem hora que não dá, o problema é que ele faz o comando, mas tem hora que faz e dá erro e tem hora que só faz sem dar erro... Antes de usar o destroy, qual comando estava sendo dado para finalizar suas janelas? Compartilhar este post Link para o post Compartilhar em outros sites
Jerfs 1 Denunciar post Postado Agosto 31, 2007 antes do destroy estou usando um simples CLOSE; Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Agosto 31, 2007 Tente usar um Free antes do Destroy...No caso o close você usar para fechar o form, certo ? Compartilhar este post Link para o post Compartilhar em outros sites
Rodrigo Miss 1 Denunciar post Postado Agosto 31, 2007 hum... pelo q notei, você esta colocando no botao fechar, alguma coisa assim neh? FormTal.Close(); FormTal.Destroy;Assim vai da violação mesmo! Eu costumo colocar no botao fachar, apenas Close(); dai no evento onClose do Form eu faço assim: FormTal.Release(); Compartilhar este post Link para o post Compartilhar em outros sites
Jerfs 1 Denunciar post Postado Agosto 31, 2007 Obrigado à todos, principalemente ao Rodrigo, deu certo e rodou perfeitamente. Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Agosto 31, 2007 beleza... quando precisar... conte conosco... :D Compartilhar este post Link para o post Compartilhar em outros sites