Minha página inicial: http://www.tommstudio.com/
Na programação Delphi, precisamos evitar vazamentos de memória desinstalando todos os objetos. No entanto, se você não tomar cuidado no programa, é fácil desfazer o mesmo objeto várias vezes, o que causará erros graves, fazendo com que o aplicativo trava ou até trava.
Consulte o seguinte programa:
|
No exemplo acima, um erro será gerado ao executar para o Button3.Free, o Button2 é cancelado ao ligar para o botão .
Para evitar o erro acima, existem duas maneiras: primeiro, remova todos os componentes aos quais o host é antes de ser removido. Este método é muito simples, basta transferir botão2.Free e Button3.Free no exemplo acima. Segundo, defina a variável Button3 como NIL antes que o Button3.Free seja executado. O procedimento é o seguinte:
|
No programa acima, a configuração do botão3 para o NIL é impedir que o aplicativo reutilize a memória do objeto indeciso. Ao chamar o método de objeto livre, ele determina se o objeto é nulo. Métodos de objetos virtuais relacionados informações da tabela. Destroy não faz alterações no endereço da memória onde os objetos existem; portanto, se você testar o endereço da memória após a chamada destruição, ele ainda poderá ser válido. Portanto, quando um objeto é chamado duas vezes no programa sem definir a referência do objeto para NIL, a referência do objeto ainda se refere ao endereço de memória ocupado pelo objeto antes de não ser desinstalado, que é o motivo do erro.
Obviamente, no processo de desenvolvimento real, a maioria dos erros não será tão óbvia, e a solução deve ser determinada de acordo com os detalhes, e o problema não será resolvido adicionando uma frase de maneira simples. Aqui estou apenas explicando uma idéia de programação, que desempenha um papel na atraição de Jade.