Qual a diferenã entre nil e .Free
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
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
Curtidas 0
Respostas
Nildo
19/07/2004
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;
SuaVariavel := Nada;
GOSTEI 0
Cabelo
19/07/2004
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
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
GOSTEI 0
Nildo
19/07/2004
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.
GOSTEI 0
Tatuweb
19/07/2004
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).
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).
GOSTEI 0
Paulo_amorim
19/07/2004
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é+
GOSTEI 0