Qual a diferenã entre nil e .Free

19/07/2004

0

Colegas..

Gostaria de saber qual a diferença entre atribuir a uma variável o valor nil, e usar o método .free..

Por exemplo eu crio uma variável TStringField, e para usar ela, preciso de matar e criá-la várias vezes..

então preciso usar ou o método .Free ou atribuir nil..

qual a diferença??

Agradeço a atenção de todos.

Cabelo


Cabelo

Cabelo

Responder

Posts

19/07/2004

Nildo

O Free vai liberar da memória. Já o NIL não vai liberar da memória, vai apenas desatribuir o objeto. Se ele era um TStringList, o .NIL vai dissetar esse objeto. É a mesma coisa que:

SuaVariavel := Nada;


Responder

19/07/2004

Cabelo

Certo Nildo..

Então quando fechar o form eu preciso de utilizar as duas coisas..

primeiro preciso atribuir nil, e depois dar um free..

já quando utilizar elas dentro do form, eu uso nil.

certo?

Cabelo


Responder

19/07/2004

Nildo

Não há realmente necessidade de utilizar o Nil. O Free já faz a parte dele. O NIL você pode usar para fazer checagens com o Assigned que checa se o objeto é <> NIL para fazer alguma coisa com ele.


Responder

19/07/2004

Tatuweb

Isso depende. Em alguns casos é preciso usar FreeAndNil. O método Free destroi e libera a variável da memória. Nil faz com que a variável aponte para uma área ´vazia´ da memória, atribuindo um valor NULO a uma variável.

Nil só pode ser usada por variáveis que sejam ponteiros. A grosso modo pode se dizer que ela é equivalente a atribuir ´´ a uma variável string, por exemplo. Use Free se vc não for mais precisar da variável (ao terminar o programa, por exemplo).


Responder

19/07/2004

Paulo_amorim

Nil só pode ser usada por variáveis que sejam ponteiros. A grosso modo pode se dizer que ela é equivalente a atribuir ´´ a uma variável string, por exemplo. Use Free se vc não for mais precisar da variável (ao terminar o programa, por exemplo).


Olá

Quando não for usar uma variável deve-se utlizar Free, pois se vc utilizar Nil a unica coisa que ele vai fazer eh apontar pra lugar nnhum...mas o espaço ainda existe. Isso seria ´tapar o sol com a peneira´, pois vc estaria considerando a memoria livre soh porque não tem conteudo.

O nil soh precisa ser usado se vc vai usar a variavel ainda, mas no momento vc atribui vazio (a mesma cosa que atribuir ´´ a uma String, como o Tatu falou) e depois pode voltar a apontar pra algum lugar sem criá-la denovo

Até+


Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar